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

2024-05-14

假设我有一个字符串列表,

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(使用前将#替换为@)

如何在Python中的正则表达式中匹配字符串列表中的任何字符串? 的相关文章

随机推荐