我有一个文本日志文件,看起来像这样:
--Start 10:00:00
--Success
--End 10:01:02
--Start 10:02:32
--Success
--End 10:02:40
--Start 10:02:00
--Error
--End 10:02:05
最后一个块是最后一个注册的事件。是否有一种方法来匹配一个正则表达式只有当在最后一个块"错误"显示了?
我尝试了一些像((?=Start)(*.)(?=Error)(*.)(?=End))(?:.(?!\))
,但不工作。我不是一个正则表达式专家。
我正在尝试在PRTG上使用它来监视服务。
非常感谢你的帮助,谢谢。
阅读此页https://www.paessler.com/manuals/prtg/regular_expressions支持的正则表达式引擎是PCRE。
您可以匹配包含Error的块,同时断言在末尾,后面没有以--Start
^h*--Start .*Rh*--ErrorRh*--Endb.*$(?!Rs*--Startb)
^
字符串起始h*--Start .*R
匹配以换行 开头的行h*--ErrorR
匹配带有Error的行,后跟一个换行符h*--Endb.*$
与End匹配,直到字符串 结束(?!Rs*--Startb)
负向前看,匹配换行符并断言后面没有以--Start
开头的第一行
查看正则表达式演示