2012-01-25 45 views
1

在PHP的正則表達式中,允許我使用非貪婪.*?匹配的次數有多少次已知限制?PHP preg_match - 非貪婪匹配的最大數量

我的乾草堆是〜200K個字符,我必須找出75個數字是否按正確順序排列。我知道有更好的方法可以在不使用preg_match的情況下做到這一點,但爲了這個問題,請留在我身邊。

  • 我的第一個正則表達式看起來像@123.*?456.*?789.*[email protected]等75個數字 - 它失敗了。

  • 第二種方法:在前30個數字後分開,所以我們有兩個正則表達式,像上面的那個,第一個有30個,第二個有45個數字。第二個失敗。

  • 第三種方法:在前40個數字後分開(因此有40個和35個數字)。兩人都成功了。

我已經確定數字39和40是有序的,所以我的猜測是,preg_match有一些限制。

回答

4

檢查通過增加該值

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

該死的,我認爲默認限制比100K大:(這個工作。 – dschihejns