0

我有一个字符串列表。我想使用正则表达式选择与特定模式匹配的字符串。Python 正则表达式不带列表,我不想使用循环。

有什么建议吗?

4

1 回答 1

2

尝试:

def searcher(s):
    if COMPILED_REGEXP_OBJECT.search(s):
        return s

matching_strings = filter(searcher, YOUR_LIST_OF_STRING)

searcher()如果匹配则返回字符串,否则返回None. filter()仅返回“true”对象,因此将跳过Nones. 它也会跳过空字符串,但怀疑这是一个问题。

或者,更好,正如@JonClements 指出的那样:

matching_strings = filter(COMPILED_REGEXP_OBJECT.search, YOUR_LIST_OF_STRING)

不仅更短,它只查找.search一次方法(而不是每个字符串一次)。

于 2013-11-10T00:48:40.607 回答