正则表达式排除不包含单词但包含单词的行

时间:2017-04-07 02:09:04

标签: java regex jenkins jenkins-plugins

我正在使用jenkins可编辑的电子邮件插件,我需要使用正则表达式来过滤日志

我有这个正则表达式

 regex="(.*)fatal:(.*)"

基本上匹配行开头与致命:这样我就可以抓错误

示例行看起来像这样

fatal: [localhost]: FAILED! => {"attempts": 1, "changed": true, "cmd": "nslookup test1.local", 

但是我想要抓住所有致命的错误,除了像nslookup这样的词语。

我想忽略上面有nslookup的行,其他所有行都应该没问题

1 个答案:

答案 0 :(得分:2)

你可以用正则表达式做一个负向的展望。这适用于您的示例:

^(.*)fatal: ((?!nsookup).)*$

检查两个不同的前瞻性词语:

^(.*)fatal: ((?!nslookup)(?!stuff).)*$

只有在“致命:”之前可能存在某些内容(空格或其他字符)时才需要开头的(。*)

您可以使用此链接播放表达式:https://regex101.com/r/ezxA5s/1