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