python - 正则表达式搜索失败
问题描述
我正在为我的正则表达式搜索使用布尔逻辑,但它不起作用。具体来说,表达式的“而不是”部分不起作用。
示例: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)
,但我不希望出现这种情况。
解决方案
您可以使用一个带有前瞻的正则表达式来捕获所有三个条件:
re.search(r"(Gi|Eth)\d/\d+(?=>\D|$)", line, flags=re.IGNORECASE)
推荐阅读
- rust - 用于测试的抽象操作系统环境变量
- java - 合并对象内的地图java 8
- python - 当我在 python 中有 8 个逻辑核心时,将我的程序分成 8 个单独的进程是最好的方法(性能方面)吗?
- typescript - 将嵌套接口映射到以路径为键的单一类型,同时保留类型
- python - python imagedownloader,不能作为类在其他文件中工作
- reactjs - 试图在反应中使用从 const 到类的东西
- java - 使用 Optional.ofNullable() 简化条件
- haskell - 如何对具有重复键的元组的键/值列表中的值求和?
- c++ - 我可以在没有首先默认构造所述成员的情况下将参数放入类成员中吗?
- python - 使用 Tkinter 显示多个视频