正则表达式搜索失败

时间:2019-03-24 15:32:24

标签: python regex python-3.x

我在正则表达式搜索中使用布尔逻辑,但无法正常工作。具体来说,表达式的“而非”部分无效。

示例: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)上看到了匹配项,但我不希望这样。

2 个答案:

答案 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)