[英]How to find multiple phrases within a single string?
至今
s = 'the fish walked start234stop down to the start879stop kajsdasdas'
result = re.findall('start(.*)stop', s)
print(result)
結果是
['234stop down to the start879']
預期的結果是
['234']
['879']
有沒有一種優雅的方式來實現這一目標? 雖然目前它只需要處理 2 個短語,但我的意圖是讓它找到盡可能多的短語 output,每個短語都以這種方式格式化。
您匹配太多,因為*
字符是貪婪的。 這意味着它將在搜索結束之前盡可能多地匹配,因此只有在找到可搜索字符串中的最后一stop
時才會停止。
您可以通過在其后綴上一個問號來使該星“不貪婪”。 這樣,它會在開始匹配后找到第一個“停止”時立即停止匹配。
result = re.findall('start(.*?)stop', s)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.