假设我有一个字符串列表,
string_lst = ['fun', 'dum', 'sun', 'gum']
我想创建一个正则表达式,在其中的某个点,我可以匹配该列表中的任何字符串,在一个组内,如下所示:
import re
template = re.compile(r".*(elem for elem in string_lst).*")
template.match("I love to have fun.")
这样做的正确方法是什么?或者是否必须创建多个正则表达式并将它们分别与字符串匹配?
通过管道字符加入列表|
,它代表正则表达式中的不同选项。
string_lst = ['fun', 'dum', 'sun', 'gum']
x="I love to have fun."
print re.findall(r"(?=("+'|'.join(string_lst)+r"))", x)
Output: ['fun']
你不能使用match
因为它从一开始就匹配。
使用search
你只会得到第一场比赛。所以使用findall
反而。
还使用展望如果您有重叠的比赛而不是从同一点开始。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)