我正在使用以下内容来查找句子中是否存在文本并打印出该文本:
示例:
import re
lst = ['text1','text2','text3']
sent = 'This is a test to find text1 and text3'
my_regex =re.search(r'\b(text1)\b', sent)
print(my_regex.group())
text1
问题:
是否可以创建一个类似于以下内容的循环,它将使用列表中的每个值迭代并更新re.search:
注意 - 该列表可能会超出示例中列出的三个
for i in lst:
my_regex =re.search(r'\b(i)\b', sent)
print(my_regex.group())
答案 0 :(得分:1)
您可以使用新的f字符串。
for i in lst:
my_regex =re.search(fr'\b{i}\b', sent)
print(my_regex.group())
答案 1 :(得分:0)
[item for item in lst if re.search(r'\b%s\b' % item, sent)]
或者你可以使用更快的解决方案(~38次):
[s for s in sent.split() if s in lst]
输出:
['text1', 'text3']