python - 匹配带方括号的字符串
问题描述
我有一个这样的输入列表,我正在阅读:
MyList = ["BUS_A[0]", "BUS_A[1]", "BUS_A[2]", "BUS_B[0]", "PORTA", "PORTB"]
我有一个正在阅读的 yaml 正则表达式,如下所示:
regex:
- BUS_A[0]
- BUS_A[2]
- PORTB
我想从列表中过滤掉 yaml 中的正则表达式。
所以首先我阅读了包含正则表达式的 Yaml 文件:
with open(options.ExcludeYaml, 'r') as InYaml:
ReadFullYaml = yaml.safe_load(InYaml)
Ports = ReadFullYaml["regex"]
然后我编译正则表达式:
MyPattern = re.compile(r'\b(?:%s)\b' % '|'.join(Ports))
然后我遍历列表以过滤掉匹配项:
for i in MyList:
if re.match(MyPattern, i):
print (i)
但是,当我运行代码时,它只匹配 PORTB:
csh> temp.py -m temp.yaml
csh> PORTB
我尝试将 yaml 中的正则表达式更新为 BUS_A\[0\] 和 BUS_A\\[0\\] 但它不起作用。知道我在正则表达式上做错了什么吗?如何使用方括号匹配字符串?
谢谢!
解决方案
推荐阅读
- system-verilog - 有没有办法修复与工厂支持基于字符串的查找相关的警告?
- c - C中的printf如何对浮点数进行舍入?
- java - 如何使一个流文件成为单独的预先存在的流文件的子级?
- sapui5 - UI5 - VBox 对 ObjectPageLayout 的聚合页脚无效
- spotfire - 如何在 Analysis DXP 文件中嵌入数据?
- javascript - 打字稿:将 HTMLElement 转换为节点
- xcode - .framework 包的 Cocoapods 架构
- angular - 如何以正确的方式将 1 个 css 文件用于 n .ts 文件?
- android - 将firebase中的父键存储到arraylist并打印出来
- django - Django 固定装置和 auto_now_add 日期时间字段