小编典典

如何从python中的正则表达式中的字符串列表中匹配任何字符串?

python

可以说我有一个字符串列表,

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.")

正确的方法是什么?还是必须制作多个正则表达式并将它们分别与字符串匹配?


阅读 222

收藏
2020-12-20

共1个答案

小编典典

string_lst = ['fun', 'dum', 'sun', 'gum']
x="I love to have fun."

print re.findall(r"(?=("+'|'.join(string_lst)+r"))",x)

您不能使用match它,因为它会从开始就匹配。请findall改为使用。

输出:['fun']

使用search您只会得到第一场比赛findall。因此请改用。

lookahead如果重叠的匹配不是从同一点开始,也可以使用。

2020-12-20