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