Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:意外的PREG\u BACKTRACK\u LIMIT\u错误_Php_Regex_Preg Match All - Fatal编程技术网

PHP:意外的PREG\u BACKTRACK\u LIMIT\u错误

PHP:意外的PREG\u BACKTRACK\u LIMIT\u错误,php,regex,preg-match-all,Php,Regex,Preg Match All,这段代码给了我一个PREG\u BACKTRACK\u LIMIT\u错误。。。但回溯限制设置为100.000.000 这是我第一次使用正则表达式,我真的不知道如何解决它 多谢各位, 马可另一个典型的死亡案例。一定是今天 仅当大括号嵌套正确时匹配。当然,它们不在你的范围之内 现在的问题是,您的正则表达式需要找出所有可能的字符串组合,您可以使用106as来构建它们,因为您有嵌套的量词(…)*)*)。(如果我错了,请纠正我)应该在106附近这是什么 1146280563734708354534347

这段代码给了我一个PREG\u BACKTRACK\u LIMIT\u错误。。。但回溯限制设置为100.000.000

这是我第一次使用正则表达式,我真的不知道如何解决它

多谢各位, 马可

另一个典型的死亡案例。一定是今天

仅当大括号嵌套正确时匹配。当然,它们不在你的范围之内

现在的问题是,您的正则表达式需要找出所有可能的字符串组合,您可以使用106
a
s来构建它们,因为您有嵌套的量词
(…)*)*)
。(如果我错了,请纠正我)应该在
106附近这是什么

11462805637347083545343473841483494287038848742413967338928272347620123824499462526603608718416734760162987096435143473505282243025063118000000000000000000

这很容易超过你的预回程限制

如果您使用确保永远不会返回到已匹配的非大括号中,那么您应该可以:

/\{(([^{}]*+|(?R))*)\}/

+你真幸运!所有格量词的另一种选择是
/\{((?>[^{}]*|(?R))*)\}/
,因为它在
Elementi trovati: 
preg_match_all ERROR
Backtrack limit was exhausted!
/\{(([^{}]*|(?R))*)\}/
/\{(([^{}]*+|(?R))*)\}/