繁体   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