php正则表达式匹配日志文件

时间:2013-03-18 23:06:04

标签: regex preg-match

我正在尝试匹配我在日志文件中看到的异常行。日志文件的格式为 “[timestamp] threadid(8个字母数字)applicationName(任意长度的字母数字字符)E(表示异常消息)”

因此,示例日志异常消息将是:

“[11/27/12 22:33:02:635 EST] 0000009a myApplication E”任何事情都可以在E.之后发生。

我无法使用PHP preg_match

找到正则表达式来匹配它

任何帮助都将不胜感激。

干杯

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

'/^\[[^\]]+\]\s\w{8}\s[^\s]+\sE.*/m'

尾随“m”确保开头的楔形与日志中一条线的开头相匹配。

如果所有日志条目看起来非常相似,除了“E”之外,此解决方案当然只能起作用。如果有日志条目,例如没有时间戳,它可能会失败,你必须寻找更详细的表达,如sputnick's。

答案 1 :(得分:0)

试试这个正则表达式(使用捕获组):

/^\[\d+/\d+/\d+\s+\d+:\d+:\d+:\d+\s+\w+\]\s+\w{8}\s+\w+\s+E(.*)/