【发布时间】:2018-05-25 18:15:16
【问题描述】:
这个问题不同于“正常”解析字符串中的新行,因为这个问题使用三个不同的正则表达式字符串来解析单行文本......可能有也可能没有多行
我有以下日志条目,并希望有一个解析它们的正则表达式...目前它只解析第一行。
这里是日志条目
注意:第二个日志条目中有一个硬返回(“\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”行结尾...
这就是我如何调用正则表达式
match = Regex.Match(logEntryText, pattern, RegexOptions.Compiled | RegexOptions.Multiline);
更多信息:
我在最后一个 reg 表达式中尝试了这个
\[(.*?)(\n|\r|\r\n)\]
但它也失败了
【问题讨论】:
-
您使用的是什么编程语言或工具?
-
.net 4.6 和 C#
-
RegexOptions.Multiline在那里什么都不做(它只会改变你没有使用的^和$的含义)。请改用RegexOptions.Singleline(这会改变.的含义)。 Reference.