import re
text = 'fruits to be sold are apple orange and peach'
x = re.findall(r'fruits.*(apple|orange|peach).*',text,re.I)
print(x)
该代码的目标是返回一个列表,其中包含单词'fruits'后面的句子中的水果名称。re.findall()不返回所有匹配
所以预期的结果应该是像
['apple','orange','peach']
而是我得到只有在sentence.i.e桃的最后一场比赛。 有人可以帮我解决问题吗?
你有没有尝试在网上正则表达式测试调整你的模式?像https://regex101.com/? – wwii
你的表情包含“水果”。该字符串只包含“水果”一次。那么怎么会有不止一场比赛呢? – khelwood
您的模式将匹配“水果”,然后是其中一个替代品,它只会搜索一次该字符串。也许可以分两步进行:捕获'水果*',然后搜索结果。 – wwii