我在正则表达式搜索中使用布尔逻辑,但无法正常工作。具体来说,表达式的“而非”部分无效。
示例:Gi3/3
应该匹配,但是Gi3/3(P)
不应该匹配。
for line in infile:
int = re.search(r"Gi\d\/.+", line, flags=re.IGNORECASE) or re.search(r"Eth\d\/.+", line) and not re.search(r"^Gi\d\/.+\(P\)$", line)
执行上述代码后,我在Gi3/3(P)
上看到了匹配项,但我不希望这样。
答案 0 :(得分:1)
您可以使用一个带有 lookahead 的常规表达式来捕获所有三个条件:
malloc
答案 1 :(得分:-1)
从正则表达式中删除“ +”
for line in infile:
int = re.search(r"Gi\d\/.", line, flags=re.IGNORECASE) or re.search(r"Eth\d\/.", line) and not re.search(r"^Gi\d\/.\(P\)$", line)