簡體   English   中英

如何在單個字符串中查找多個短語?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM