我正在编写一个脚本来检查目录中文件的内容。到目前为止我所拥有的是一个包含各种字符串的列表,并且还希望在搜索中包含传统的正则表达式。这是我到目前为止所做的:
regex = [ "STRING1", "STRING2", "STRING3", (?:<my regex here>)]
pattern = re.compile(regex)
我遇到了各种错误并尝试了一点麻烦,在编译函数中使用.join()将r'添加到正则表达式中,显然我做错了。代码执行正常,但找不到匹配,所以显然我的正则表达式编译错误。那么,制作我想要使用的正则表达式列表的正确方法是什么,然后在搜索中迭代该列表?
答案 0 :(得分:2)
你想尝试做这样的事吗?:
import re
# Pre-compile the patterns
regexes = [ re.compile(p) for p in [ 'this',
'that',
]
]
text = 'Does this text match the pattern?'
for regex in regexes:
print 'Looking for "%s" in "%s" ->' % (regex.pattern, text),
if regex.search(text):
print 'found a match!'
else:
print 'no match'
取自PyMOTW。