我跟踪异常以匹配日志。这些是日志中的几行。
com.marsh.csa.exception出现错误。 NoClientInfoFound :
更新CSA详细信息时出现远程异常java.rmi。 ServerException :
handleException():com.marsh.framework.core.exception。 MarshException :
Found Exception,class:java.lang。 NullPointerException ,
的org.springframework.dao。的 DataAccessResourceFailureException
org.springframework.jdbc。的 UncategorizedSQLException
我能够匹配以上5个例外中的4个,但无法匹配这个
.csa.exception的 NoClientInfoFound :
我的正则表达式: (?I)[A-ZA-Z] +。[A-ZA-Z] +。(?[A-ZA-Z] +异常)
如何匹配以上所有5个异常? 我甚至试过这个
(Ⅰ')[A-ZA-Z] + [A-ZA-Z] +([A-ZA-Z] +(例外|?NoClientInfoFound))。
仍然无法匹配!!
编辑:
又增加了一个例外
org.springframework.jdbc。的 UncategorizedSQLException
并尝试过 \ SA-Z *的(R)(P [A-Z] +异常?| NoClientInfoFound | UncategorizedSQLException)
但不匹配 UncategorizedSQLException
答案 0 :(得分:1)
看起来您需要允许更长的包名称用于例外:
(?i)[a-z]+(\.[a-z]+)*\.[a-z]+Exception
请注意,使用不区分大小写的标志意味着您不必在字符类范围中列出两个字母大小写。
答案 1 :(得分:0)
使用美元符号从头到尾搜索,然后使用前一个项目,依此类推。这将获取您在上面列出的每一行末尾的所有项目。我用过“?”告诉它“做或者”。
(?i)((UncategorizedSQLException|DataAccessResourceFailureException|NullPointerException|MarshException|ServerException|NoClientInfoFound).?)$
这是正则表达式。 http://regexr.com?380gf