我正在尝试从 Web 服务器日志中提取一些信息,但它不是很结构化,所以我遇到了麻烦,我正在尝试匹配:
示例 1:
2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M= 2 Success
示例 2:
2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M=10 Success
此正则表达式适用于示例 1:
(\d\d\d\d-\d\d-\d\d)\s[\d|:]+,\d+\s([A-Z]+)\s\[(.+)\]\s.+:\sM=\s(\d).+
其中第一组是日期,第二组是日志级别,第三组是类名,第三组是 的值M
。
您可能已经注意到,在示例 1 中,在 M= 之后,数字之前有一个空格,而在另一个示例中,这不是这个正则表达式不起作用的原因。
我确实尝试过类似的M=[\s|d]+
方法,但是我得到了更多我要求的匹配字符,有人建议如何将这两个示例与一个正则表达式匹配吗?