为什么.NET正则表达式搜索引擎只找到一个匹配?

时间:2017-06-01 15:18:00

标签: c# .net regex

正则表达式(?=(\d+))\w+\1适用于" 456x56"只发现一个匹配" 56x56"。

为什么搜索引擎不再继续寻找下一场比赛" 6x56"?

1 个答案:

答案 0 :(得分:2)

\w+\1已经消耗了字符56x56。你不能再次匹配它们了。

如果你想一次在一个位置搜索你的字符串,你需要将所有模式放在前瞻中,例如:

(?=((\d+)\w*\2))

预期结果位于捕获组1中。demo

由于前瞻是零宽度断言(换句话说只是测试),它不消耗字符,这样正则表达式引擎将尝试字符串中的每个位置。