我想使用下面的表达式在组捕获中捕获出现在'Value-'直到'TestRun'之后的整个字符串,但不考虑文字')'。如何捕获直到“ TestRun”的字符串?
正则表达式:
Value - ([\\\w-:_.*\(\)]+)\s
文字:
Value - F:\TEMP\Radio\5\M\Try_Remove\6( alt )\TestRun End
答案 0 :(得分:1)
您尝试过的模式与空格不匹配,并且在圆括号后将停止匹配。
例如,您可以匹配不带括号的字符类中允许的字符,或者使用非捕获组和量词从开头匹配将关闭括号。
Value - ([\\\w:_.*-]+(?:\([^()]*\)[\\\w:_.*-]*)*)\s
说明
Value -
字面上匹配(
捕获第1组
[\\\w:_.*-]+
匹配列出的任何内容1次以上(?:
非捕获组
\([^()]*\)[\\\w:_.*-]*
与(
.. )
进行匹配,并且0倍以上列出的任何数字)*
关闭组并重复0次以上)
关闭第1组\s
匹配空白字符Regex demo(单击“表格”标签以查看组值)
一种更广泛的模式是匹配到/
的最后一次出现,然后匹配以下非空格字符
Value - (.*\\\S+)\s