-2
我試圖使用正則表達式來執行某個代碼。在下面的示例中,我的意圖是讓名稱中的所有項匹配(如果在name3中找到並打印出來)。問題是隻有匹配的字符串中的第一項被打印出來。如何使用正則表達式匹配列表中的所有項目
import re
def foo():
for counter, option in enumerate(keywords):
try:
name = 'can one and three be odd numbers'
name2 = name[:]
name3 = ['one','two','three', 'four',]
regex1one = re.compile(r'\b(?:%s)\b'%'|'.join(name3))
regex11one = re.compile(r'\b(?:%s)\b'%'|'.join(keywords))
name4 = regex1one.search(name).group()
print name4
break
except:
break
keywords = ['be','are','is',]
foo()
如果計劃獲得多個匹配,使用're.findall'或're.finditer'。而你的字符串包含1個「1」來匹配。這個示例代碼中沒有'two','three',也沒有'four' –
,它只會打印['one'],我想['one','three']。 findall()如何做到這一點?在詢問之前,我嘗試了findall(),但仍然沒有回答。 – wakamdr
你拼錯了三個名字,findall應該工作。 – bink1time