PHP preg_match - 非贪婪匹配的最大数量

时间:2012-01-25 13:48:08

标签: php preg-replace preg-match limit

我是否允许在PHP中使用正则表达式中的非贪婪.*?匹配次数的已知限制?

我的干草堆大约有20万个字符,我必须找出75个数字的顺序是否正确。我知道有更好的方法可以在不使用preg_match的情况下做到这一点,但为了这个问题,请留下来。

  • 我的第一个正则表达式看起来像@123.*?456.*?789.*?101112@等,有75个数字 - 它失败了。

  • 第二种方法:在前30个数字之后拆分,所以我们有两个正则表达式,如上面的那个,第一个有30个,第二个有45个。第二个失败了。

  • 第三种方法:在前40个数字后分割(因此有40和35个数字)。两者都成功了。

我已经确定第39和40号是有序的,所以我的猜测是,preg_match有一些限制。

1 个答案:

答案 0 :(得分:4)

通过增加此值来检查

ini_set("pcre.backtrack_limit", "1000000");