我有一个字符串列表。我想使用正则表达式选择与特定模式匹配的字符串。 Python正则表达式不采用列表,我不想使用循环。
有什么建议吗?
答案 0 :(得分:2)
尝试:
def searcher(s):
if COMPILED_REGEXP_OBJECT.search(s):
return s
matching_strings = filter(searcher, YOUR_LIST_OF_STRING)
searcher()
返回匹配的字符串,否则返回None
。 filter()
仅返回“true”对象,因此将跳过None
。它也会跳过空字符串,但怀疑这是一个问题。
或者更好,正如@JonClements所指出的那样:
matching_strings = filter(COMPILED_REGEXP_OBJECT.search, YOUR_LIST_OF_STRING)
不仅更短,它只查找.search
方法一次(而不是每个字符串一次)。