我正在尝试解析日志文件并查找与错误相关的行。我上了这样的一行:
Worker Node UP/DOWN Notification received From ICM-GW
它是通知而不是错误的地方,我想查找其中带有 DOWN 信息的行,但要排除是否存在 UP / DOWN 。我尝试了许多正则表达式表达式,但距离更近。 任何帮助都会非常有帮助。
([?!up\/]?(down))
答案 0 :(得分:2)
[?!up\/]?
是与?
或!
,u
,p
或/
匹配1或0次的字符类(由于?
之后的]
量词,它使此模式成为可选)。
您可以使用基于后向的正则表达式,例如
r'(?i)\b(?<!\bup/)down\b'
请参见regex demo
详细信息
(?i)
-不区分大小写的标志\b
-单词边界(以避免与down
中的touchdown
匹配)(?<!\bup/)
-当前位置的左侧不允许直接输入整个单词up
down
-down
字符序列\b
-单词边界,紧靠右边,不能有任何单词char(字母,数字或_
,以及其他单词,因为re.U
标志默认情况下处于启用状态Python 3,但它们并不相关。