简单正则表达式匹配在线调试器,但在PHP7.3运行时不匹配

简单正则表达式匹配在线调试器,但在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

我的正则表达式在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

-火柴

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