[英]Is it possible to find a match on last occurence between two words with regex?
我有一個如下所示的文本日志文件:
--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 .*\R\h*--Error\R\h*--End\b.*$(?!\R\s*--Start\b)
解釋
^
字符串開頭\h*--Start.*\R
匹配與 start 后跟換行符的行\h*--Error\R
匹配帶有錯誤的行,后跟換行符\h*--End\b.*$
匹配與 End 的行直到字符串的結尾(?!\R\s*--Start\b)
負前瞻,匹配換行符並斷言后面沒有以--Start
開頭的第一行查看正則表達式演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.