使用正则表达式捕获包含“(”和“)”的字符串
Capture a string which contains '(' and ')' using regular expression
我想使用下面的表达式在组捕获中捕获出现在 'Value - ' 到 'TestRun' 之后的整个字符串,但它不考虑文字 ')'。如何捕获字符串直到 'TestRun'?
正则表达式:
Value - ([\\w-:_.*\(\)]+)\s
正文:
Value - F:\TEMP\Radio\M\Try_Remove( alt )\TestRun End
您尝试的模式与 space 不匹配,将在左括号后停止匹配。
例如,您可以在不带括号的情况下匹配字符 class 中允许的内容,或者使用非捕获组和量词匹配左括号和右括号。
Value - ([\\w:_.*-]+(?:\([^()]*\)[\\w:_.*-]*)*)\s
说明
Value -
字面匹配
(
捕获 组 1
[\\w:_.*-]+
匹配任何列出的 1 次以上
(?:
非捕获组
\([^()]*\)[\\w:_.*-]*
匹配 (
..)
和 0+ 次任何列出的
)*
关闭组重复0+次
)
关闭组 1
\s
匹配白色space 字符
Regex demo(单击 Table 选项卡查看组值)
更广泛的模式是匹配直到最后一次出现 /
,然后匹配后面的非 whitespace 个字符
Value - (.*\\S+)\s
我想使用下面的表达式在组捕获中捕获出现在 'Value - ' 到 'TestRun' 之后的整个字符串,但它不考虑文字 ')'。如何捕获字符串直到 'TestRun'?
正则表达式:
Value - ([\\w-:_.*\(\)]+)\s
正文:
Value - F:\TEMP\Radio\M\Try_Remove( alt )\TestRun End
您尝试的模式与 space 不匹配,将在左括号后停止匹配。
例如,您可以在不带括号的情况下匹配字符 class 中允许的内容,或者使用非捕获组和量词匹配左括号和右括号。
Value - ([\\w:_.*-]+(?:\([^()]*\)[\\w:_.*-]*)*)\s
说明
Value -
字面匹配(
捕获 组 1[\\w:_.*-]+
匹配任何列出的 1 次以上(?:
非捕获组\([^()]*\)[\\w:_.*-]*
匹配(
..)
和 0+ 次任何列出的
)*
关闭组重复0+次
)
关闭组 1\s
匹配白色space 字符
Regex demo(单击 Table 选项卡查看组值)
更广泛的模式是匹配直到最后一次出现 /
,然后匹配后面的非 whitespace 个字符
Value - (.*\\S+)\s