[英]What is the regular expression for parsing a log entry
此問題與“正常”分析字符串中的新行不同,因為此問題使用三個不同的正則表達式字符串來分析一行文本...可能有多行也可能沒有多行
我有以下日志條目,並希望有一個解析它們兩個的正則表達式...目前,它僅解析第一行。
這是日志條目
注意:第二個日志條目中有一個硬返回(“ \\ r \\ n”)
[2018-05-25 08:23:54.6040][Manager.Calls.Manager][GetManagerID]
[2018-05-25 08:23:54.6040][Manager.Calls.Manager][Status as of 5/25/2018 8:23:54 AM
Expires 1/1/0001 12:00:00 AM]
這是我當前正在使用的正則表達式:
(\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{4}\])\[(.*?)\]\[(.*?)\]
我想我需要一些東西來獲得“ \\ r \\ n”行結尾...
這是我給Regex打電話的方式
match = Regex.Match(logEntryText, pattern, RegexOptions.Compiled | RegexOptions.Multiline);
更多信息:
我在最后一個reg表達式中嘗試過
\[(.*?)(\n|\r|\r\n)\]
但它也失敗了
我認為您可以在執行解析操作之前從數據預處理中受益。 例如,檢查日志行是否以]
結尾,如果不是,則將下一行追加到該行之后。 然后處理生成的完整日志條目。
編輯:我假設您只有一行列表(例如,來自文本文件)。 如果您擁有的是有時有時包含硬返回的日志條目列表,則只需在處理之前將其刪除: logEntry.Replace("\\r\\n","")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.