-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