正则表达式,用于匹配不同类型的异常

时间:2013-10-29 10:19:52

标签: regex splunk

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

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

2 个答案:

答案 0 :(得分:1)

看起来您需要允许更长的包名称用于例外:

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

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

答案 1 :(得分:0)

使用美元符号从头到尾搜索,然后使用前一个项目,依此类推。这将获取您在上面列出的每一行末尾的所有项目。我用过“?”告诉它“做或者”。

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

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