列表包含字符串和传统正则表达式

时间:2013-05-23 17:17:25

标签: python regex list

我正在编写一个脚本来检查目录中文件的内容。到目前为止我所拥有的是一个包含各种字符串的列表,并且还希望在搜索中包含传统的正则表达式。这是我到目前为止所做的:

regex = [ "STRING1", "STRING2", "STRING3", (?:<my regex here>)]
pattern = re.compile(regex)

我遇到了各种错误并尝试了一点麻烦,在编译函数中使用.join()将r'添加到正则表达式中,显然我做错了。代码执行正常,但找不到匹配,所以显然我的正则表达式编译错误。那么,制作我想要使用的正则表达式列表的正确方法是什么,然后在搜索中迭代该列表?

1 个答案:

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