1

我已经跟踪异常以匹配日志。这些是日志中的几行。

com.marsh.csa.exception 发生错误。NoClientInfoFound

更新 CSA 详细信息 java.rmi 时出现远程异常。服务器异常

处理异常():com.marsh.framework.core.exception。沼泽异常

发现异常,类:java.lang。空指针异常

org.springframework.dao。数据访问资源失败异常

org.springframework.jdbc。未分类的SQLException

我能够匹配上述 5 个例外中的 4 个,但无法匹配这个

.csa.异常。NoClientInfoFound

我的正则表达式: (?i)[a-zA-Z]+.[a-zA-Z]+.(?[a-zA-Z]+Exception)

如何匹配以上所有 5 个异常?我什至试过这样

(?i)[a-zA-Z]+.[a-zA-Z]+.(?[a-zA-Z]+(Exception|NoClientInfoFound))

还是无法匹配!!

编辑:

又增加了一个例外

org.springframework.jdbc。未分类的SQLException

并尝试使用 (?i)\sa-z*(?P[az]+Exception|NoClientInfoFound|UncategorizedSQLException)

但它不匹配UncategorizedSQLException

4

2 回答 2

1

看起来您需要为异常允许更长的包名称:

(?i)[a-z]+(\.[a-z]+)*\.[a-z]+Exception

请注意,使用不区分大小写标志意味着您不必在字符类范围中列出两个字母大小写。

于 2013-10-29T11:36:08.363 回答
0

使用美元符号从尾到头搜索,然后是它之前的下一个项目,依此类推。这将获取上面列出的每一行末尾的所有项目。我用了“?” 告诉它做“非此即彼”。

 (?i)((UncategorizedSQLException|DataAccessResourceFailureException|NullPointerException|MarshException|ServerException|NoClientInfoFound).?)$

这是正在运行的正则表达式。 http://regexr.com?380gf

于 2014-01-15T05:53:34.980 回答