使用後續的正則表達式:在大正則表達式使用惰性計算(不只是*?)
\[\w* \w* \d{2} [\w:]* \d{4}\] \[error\] \[client .*?\] .*? Using HTTP not .*?<br />
我得到的結果如下(其中黃色框指示匹配):
原始文本:http://pastebin.com/vSi0mLGv
底部的兩個部分是correc噸。我想包含所有部分:<<<NOTICE>>> Non-Prod Server: Using HTTP not HTTP/S
的頂部然而,包含正確的字符串(類似於底部的兩個),而且還附帶了一個整體的其他塊,我不想:
[Thu May 10 17:43:48 2012] [error] [client ::1] Current Name:
DashboardBar_projAnnualReview200, referer: http://
localhost/test/pages/TestPage.php<br />`
我知道這歸結爲正則表達式是貪婪的,但我怎麼能讓它做一個<br />
的懶惰評估,如果這是正確的方式去做。我試過(<br />)*?
等人無濟於事。
其他信息: 我使用Sublime Text 2,並執行正則表達式搜索,如果有人想重新創建圖像。
只是FYI,[懶惰評價](http://en.wikipedia.org/wiki/Lazy_evaluation)與正則表達式無關。 「懶惰」一詞早期用於描述正則表達式量詞的非貪婪變體,這是一個錯誤。 「非貪婪」對他們來說是一個更好的詞,「不情願」更準確。 –