正则表达式 - 查找排除另一个子字符串的子字符串

时间:2015-01-08 14:22:05

标签: regex

很多时候已经讨论过类似的主题,但到目前为止,我没有找到合适的语法,如果可能的话,也符合我的需要。

我希望根据日志文件中的特定子字符串发出警报,但是当同一行中存在另一个子字符串(忽略)时,避免发出警报。

当两个字符串在其之前,之间和之后与其他字符串一起出现时,子字符串在该行上的顺序始终相同:

bla bla bla StringToIgnore bla bla bla StringToLookfor bla bla bla

总结一下,使用逻辑语法,我想做: StringToLookFor AND(NOT StringToIgnore)

我必须使用这个独特的正则表达式。通过生成日志的工具上的字段输入正则表达式。没有其他组合,逻辑,代码或脚本是可能的。

1 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求:

^(?=.*StringToLookFor)(?!.*StringToIgnore).*

使用多行修饰符m

regex101 demo.

最后的.*位只是为了让匹配更容易看到,实际上并不需要。