几个星期我在
PHP中使用正则表达式.
现在我的问题是:有没有办法让RegEx贪得无厌?
例如主题:012345abcdefghijklm
模式:/(abcde | abcdefghi)/将提取abcde,虽然abcdefghi是比较贪婪的.
我发现的唯一方法是按可能匹配的最大长度对RegEx进行排序
谢谢
最佳答案 除了重新排序元素或添加可选的非捕获组之外别无他法.
正则表达式引擎非常渴望.由于Alternation元字符的工作方式(|),the first possible match exits the alternation clause.
要么重新排序可能的选择(/(abcdefghi | abcde)/)还是使用可选的非捕获组(/(abcde(?:fghi)?)/).