2012-08-03 168 views
2

我在總體上詢問一種工具或方法,以找到造成不受控制回溯的正則表達式中的「熱點」。我對佔有性匹配,負向預測斷言,原子組等都有相當好的把握,但是我面臨的情況是,我不清楚我的正則表達式究竟是錯誤的。解決災難性回溯的工具

有問題的正則表達式是一個PCRE正則表達式;但我會很高興爲任何語言的任何指針。

理想情況下,我希望看到一個工具可以突出顯示正則表達式中的「熱點」。我過去曾試圖爲perl -Mre=debug創建一個封裝器,但無法真正弄清楚我應該如何有用地處理它的輸出。有趣的是,這個想法是針對一個正則表達式運行一個或多個輸入字符串,並收集匹配器不斷返回的正則表達式中的偏移量(以及可能的字符串偏移量)。

回答

6

Damian Conway全新的Regexp::Debugger模塊可讓您觀看與字符串匹配的正則表達式動畫。它應該很容易找到過度的回溯。只需安裝它並使用附帶的rxrx腳本,您可以輸入正則表達式和字符串來匹配它。