我試圖用PHP抓取一系列網頁,抓取標籤和最早標籤之間的所有內容。這是我正在使用的正則表達式:HTML的Catastophic回溯問題
|(?<=div id="body">).*?</div>|s
這對於我正在查看的大多數頁面來說似乎都工作得很好。但是,它不會爲其他幾個人返回任何東西。我將正則表達式插入到regex101.com測試程序中,它告訴我問題在於災難性的回溯。我試圖消除回顧後的語言,甚至玩弄的東西,如:
|id="body">.*?</div>|s
然而,問題仍然持續。我已經看了一些關於災難性回溯的其他問題,以及http://www.regular-expressions.info/catastrophic.html文章,但我無法弄清楚如何將這些修復應用到這種特殊情況。
我沒有看到,落入災難性的回溯。你能把我們鏈接到你試過的regex101例子嗎? – Mariano
當然。 https://regex101.com/r/kY8qK0/1 – EAP
爲什麼你需要一個向後看? 'div id =「body」>。*? '作品也一樣。 – sln