正则表达式-匹配模式,除非它是另一个模式的一部分

时间:2019-10-29 09:47:08

标签: python regex python-3.x

我正在尝试在各种没有固定结构的日志文件中查找单词“错误” ,同时忽略已知的误报。以这样的日志行为例:

21:55:50 [wsgi:error] [/app/whatever.py] debug: Harmless message
21:55:50 [wsgi:error] [/app/somethingelse.py] error: Problem message

我想匹配包含error的行,但如果只有wsgi:error,则不匹配,即仅匹配第二行。

不想想按行分隔行,只匹配例如从第3个字段开始,因为我有一些混合的日志文件,其中有来自不同来源的消息,而且格式不如上面的好。

我正在寻找一种基本的方法:

如果该行显示“错误”或“致命”,则匹配,但如果唯一的匹配是“ wsgi:error”或“问题不是致命的”,则不匹配。我明白了。

>

此刻,我用'xxxx'替换所有列入白名单的模式,然后才查找错误,但这是一个很肮脏的解决方案。我希望有一个更好的:)

理想情况是在Python 3.6+中,也许带有一些正则表达式魔术?

有什么想法吗?

0 个答案:

没有答案