我的日志文件包含以下内容:
Run Code Online (Sandbox Code Playgroud)2009-03-12T12:44:27+0000 something was logged 2009-03-12T12:45:36+0000 127.0.0.1 127.0.0.1 <auth.info> last message repeated 2 times
我可以编写一个正则表达式来检索带有“最后一条消息重复...”语句的行,但是,如果不检索它前面的行,该行就毫无意义。
话虽这么说,有谁知道一个正则表达式可以让我在检测到“最后一条消息重复...”语句时检索这两行?
编辑为 2 组匹配正则表达式。您可以尝试一下:RegexLib
不太优化,但是:
([\r\n].*?)(?:=?\r|\n)(.*?(?:last message repeated).*)
Run Code Online (Sandbox Code Playgroud)
应该努力从这样的事情中得到结果:
2009-03-12T12:44:27+0000 something1 was logged
2009-03-12T12:44:27+0000 something2 was logged
2009-03-12T12:45:36+0000 127.0.0.1 127.0.0.1 <auth.info> last message repeated 2 times
2009-03-12T12:44:27+0000 something3 was logged
2009-03-12T12:44:27+0000 something4 was logged
2009-03-12T12:44:27+0000 something5 was logged
2009-03-12T12:45:36+0000 127.0.0.1 127.0.0.1 <auth.info> last message repeated 2 times
Run Code Online (Sandbox Code Playgroud)
导致:
Matches
First Match, First Group: 2009-03-12T12:44:27+0000 something2 was logged
First Match, Second Group: 2009-03-12T12:45:36+0000 127.0.0.1 127.0.0.1 <auth.info> last message repeated 2 times
Second Match, First Group: 2009-03-12T12:44:27+0000 something5 was logged
Second Match, Second Group: 2009-03-12T12:45:36+0000 127.0.0.1 127.0.0.1 <auth.info> last message repeated 2 times
Run Code Online (Sandbox Code Playgroud)