所以我有这个作为不和谐的命令。
$command这是我的第一个文本$这是我的第二个文本$这是我的第三个文本$这是我的第四个文本
例如,我需要获取第三个文本部分,它应该输出如下:这是我的第三个文本。删除其他文本。
所以应该是这样的。
1.获取第三个出现的**$。
1.删除文本的其余部分:$命令这是我的第一个文本$这是我的第二个文本$和$这是我的第四个文本**
1.得到这是我的第三个文本部分。
在regex中如何做到这一点?我搜索了这里的线程,有些人说要使用类似捕获组的东西,但我无法使其工作。
(?:\$){2}(\s.*)
3条答案
按热度按时间insrf1ej1#
您可以使用
\$[^$]+
来匹配后跟其他字符的$
。afdcj2ne2#
使用捕获组:
说明
^
字符串开始(?:
非捕获组作为整个部分重复[^$]*\$
匹配$
以外的可选字符,然后匹配$
){3}
关闭非捕获组并重复3次\s*
匹配可选空白字符(
捕获组1[^$]*
匹配$
以外的可选字符[^\s$]
匹配$
以外的非空白字符)
关闭组1参见regex demo。
如果是supported,则使用lookbehindAssert仅获取匹配:
5fjcxozz3#
库应该接受正向前看和向后看,因此您可以尝试以下操作: