简单正则表达式匹配在线调试器,但在PHP7.3运行时不匹配
我的正则表达式在Debuggex上运行并显示匹配项,但在PHP中运行时不匹配。 这个正则表达式不是我做的,因为我根本不兼容正则表达式,这就是为什么我现在不能调试它(已经2个小时了) 请帮忙 表达式:简单正则表达式匹配在线调试器,但在PHP7.3运行时不匹配,php,regex,pcre,Php,Regex,Pcre,我的正则表达式在Debuggex上运行并显示匹配项,但在PHP中运行时不匹配。 这个正则表达式不是我做的,因为我根本不兼容正则表达式,这就是为什么我现在不能调试它(已经2个小时了) 请帮忙 表达式:^0+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0+[0-1]+[0+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0 要匹配的字符串:0111110111110111110000
^0+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0+[0-1]+[0+[0-1]+[0-1]+[0-1]+[0-1]+[0-1]+[0
要匹配的字符串:0111110111110111110000
-火柴
PHP版本是7.3。在Windows和Linux PHP环境中都尝试过
表达式是为PHP5.6编写的。我知道PHP7及以上版本更新了PCRE引擎,所以这可能就是我的正则表达式不能工作的原因
请帮忙 我通过在php.ini
中增加pcre.backtrack\u limit
来“修复”我的问题
我知道它并不能真正修复写得很糟糕的正则表达式,它更像是用胶带粘在一个断裂的椅子腿上。
但目前,我没有时间重写正则表达式,因为我不喜欢正则表达式
感谢大家的想法和帮助。PHP并没有改变regex的工作方式。如果他们这样做了,就会出现一些严重的向后兼容性问题。Jeto,我本来很高兴,但事实并非如此:看到问题了吗?您的模式应该匹配什么?对于25位数字:
^(?>0[01]{7}){3}0