2013-11-10 30 views
0

我有一個字符串列表。我想選擇使用正則表達式匹配某個模式的字符串。 Python的正則表達式不採取列表,我不想使用循環。在Python中使用正則表達式搜索字符串列表

有什麼建議嗎?

+0

爲什麼你不想使用循環?你似乎知道如何處理這個問題的基礎知識,但是指出它是一個你不能......因此......錯誤? 「過濾」就足夠了嗎? –

+0

因爲循環很慢,我有一個非常大的列表 – Shan

+0

循環非常緩慢......真的嗎?不成熟的優化和所有... –

回答

2

嘗試:

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

matching_strings = filter(searcher, YOUR_LIST_OF_STRING) 

searcher()返回字符串,如果它匹配,否則返回Nonefilter()只返回「true」對象,所以會跳過None s。它也會跳過空字符串,但懷疑這是一個問題。

或者,更好,因爲@JonClements指出:

matching_strings = filter(COMPILED_REGEXP_OBJECT.search, YOUR_LIST_OF_STRING) 

不僅短,只(每個字符串,而不是一次)中查找.search方法一次。

相關問題