我正在尝试搜索日志文件以查看是否出现了任何警告,以便我可以使用Jenkins插件在“文本查找器”中在Jenkins管道中发出警告。
但是,我有一个案例,如果字符串也包含plms,我不希望在日志文件中对字符串“CRIT”进行命中。
E.g。 我在日志文件中有以下文本:
<CRIT> 23-Jun-2014::10:57:13.649 Upgrade committed
<CRIT> 23-Jun-2014::10:57:13.703 no registration found for callpoint plmsView/get_next of type=external
我对第二行的警告不感兴趣,所以我在Jenkins的Text Finder中添加了以下正则表达式:
WARN|ERROR|<ERR>|/^(?=<CRIT>)(?=^(?:(?!plms).)*$).*$/
只有当字符串不包含plms,即第一行时,才应该触及CRIT,但我不会在任何一行上获得命中。
我从这里得到了代码:Combine Regexp
有人可以帮我纠正一下吗?谢谢!
答案 0 :(得分:1)
你应该使用这样的东西:
WARN|ERROR|<ERR>|<CRIT>(?!.*?no registration found)
更改no registration found
部分以匹配您要排除的<CRIT>
邮件。
此表达式也适用于以下行:
<INFO> User WARNER registered
所以你应该考虑使用类似的东西:
^(WARN|ERROR|<ERR>|<CRIT>(?!.*?no registration found))
仅当令牌位于行的开头时才匹配(相应地更改令牌)。
答案 1 :(得分:0)