【发布时间】:2015-11-06 21:35:55
【问题描述】:
我设计了正则表达式来匹配异常消息字段。
^.*\s([^:,\s]+):\s+([^:]+)\sat\s+\S+\((\w+)\.\w+:(\d+)\)$
它只匹配几个字段。
测试字符串是:
ERROR java.lang.NullPointerException: Sample Java Logback Exception
at Sample.errorLevel3(Sample.java:35)
at Sample.errorLevel4(Sample.java:34)
at Sample.errorLevel5(Sample.java:30)
at Sample.errorLevel6(Sample.java:3)
找到匹配项:
java.lang.NullPointerException
Sample Java Logback Exception
Sample
35
预期匹配:
java.lang.NullPointerException
Sample Java Logback Exception
Sample.errorLevel3
Sample.java
35
Sample.errorLevel4
Sample.java
34
Sample.errorLevel5
Sample.java
30
Sample.errorLevel6
Sample.java
3
谁有更好的正则表达式来匹配异常消息的字段?
【问题讨论】:
-
为什么不直接使用error对象来获取你需要的数据呢?
-
嗯,你没有把缺失的部分放在一个组中(在括号中),所以它们没有被报告。