使用后续的正则表达式:在大正则表达式使用惰性计算(不只是*?)
\[\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)与正则表达式无关。 “懒惰”一词早期用于描述正则表达式量词的非贪婪变体,这是一个错误。 “非贪婪”对他们来说是一个更好的词,“不情愿”更准确。 –