我正在搜索一个类似这样构造的字符串:
bla bla bla *Priorities: bla bla - yada yada - Keyword, yada *Terms
我可以像这样捕获关键字:
\*Priorities:.*?-.*?- (.*?),.*?\*Terms
然而,在某些情况下,会有或多或少的连字符:
bla bla bla *Priorities: bla bla - yada yada - bla bla - Keyword, yada *Terms
我也可以通过以下方式得到:
\*Priorities:(.*?-){1,4} (.*?),.*?\*Terms
但我试图避免第二个捕获组(所以我不必修改我的代码)。无论如何,是否可以以某种方式执行此操作,从模式匹配的末尾搜索到最后一个.?*-
?并仍然使用字符串的开头(*Priorities:
)在模式匹配中,从而避免第二个捕获组?
匹配 1 到 4 组非逗号,后跟逗号。然后是一个空格,后跟一个关键字,最后是结束序列。
\*Priorities:(?:[^-]+-){1,4} (\w+).*\*Terms
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)