可以说我有一个字符串列表,
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)
输出: ['fun']
您无法使用,match
因为它将从一开始就匹配。使用search
您只会得到第一场比赛。因此请findall
改用。
如果重叠的匹配不是从同一点开始的,也请使用前瞻性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句