[英]Log Parser Lizard (MS Log Parser) Ignore Regex
第一個問題要這樣溫柔。
我是正則表達式padawan。 我只是輕輕地涉獵。 我正在使用LizardLabs的Log Parser Lizard進行實驗。 我正在編寫XML,該應用程序使用MS Log Parser將正則表達式應用於日志文件,以在漂亮的GUI中返回結果。 XML包含您定義為字段的標記,因此可以原諒凌亂的代碼,但這就是它想要的方式...
<regex>\s{1,}(?<PID>(.*))\((?<TID>(.*))\)\s{1,}(?<DATE>(\d{2}\/\d{2}\/\d{4}))\s{1,}(?<TIME>(\d{2}:\d{2}:\d{2}))\s{1,}(?<CLASS>([A-Z][^\s]{1,}))\s{1,}(?<TYPE>(.{1}))\s{1,}(?<MESSAGE>(.{1,})).*</regex>
<fields>
<field name="PID" type="String" />
<field name="TID" type="String" />
<field name="DATE" type="String" />
<field name="TIME" type="String" />
<field name="CLASS" type="String" />
<field name="TYPE" type="String" />
<field name="MESSAGE" type="String" />
</fields>
樣例行:
3840(5516)03/15/2015 00:10:04 JS I開始事件截止日期更新時間表
3840(5516)03/15/2015 00:10:04 JS I無記錄可更新
3648(5444)03/15/2015 01:00:07 JGroups版本:2.6.15.GA
正則表達式正確地抓住了前兩行並很好地解析了它,但是第三行失敗了(顯然,因為它的格式不同)。
問題:如何使用(?!JGroups)或[^ JGroups]使正則表達式正確忽略JGroups行?
我已經嘗試了以下方法;
(?<CLASS>([^JGroups][A-Z][^\s]{1,}))
(?<CLASS>((?!JGroups([A-Z][^\s]{1,})))
似乎都沒有使它忽略該行(並繼續匹配)。
我究竟做錯了什么? 為了進一步使其復雜化,使用普通的正則表達式(無需通過該應用程序運行它)似乎可以與我的第二個示例一起正常工作。 是應用程序不知道如何進行這些“忽略”匹配的錯誤嗎?
正則表達式中有一些奇怪的事情。
\\s{1,}
似乎您想使用空格作為分隔符,但實際上是說1或0個空格
(?<CLASS>([AZ][^\\s]{1,}))
該類是單個字母(例如'J'),后跟1或0個非空格字符?
沒有日志本身的格式,我無法為您提供更多幫助,但是看起來應該是這樣的: \\s*(?<PID>([^\\s]*))\\((?<TID>([^\\s]*))\\)\\s(?<DATE>(\\d{2}\\/\\d{2}\\/\\d{4}))\\s(?<TIME>(\\d{2}:\\d{2}:\\d{2}))\\s(?<CLASS>([^\\s]*))\\s(?<TYPE>([^\\s]*))\\s(?<MESSAGE>(.*))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.