import re
stroka="start_dfd8357dfd_stop_dlfjdsf_start_kljf8998_stop_sfsdjflkjf_start_fjslkdjfdls_stop"
t=re.findall(r'start(.*)stop', stroka)
print (t)
字符串中stroka有三组start- stop。我想在它们之间拉出三个序列:第一个起停之间、第二个起停之间以及第三个起停之间。
但re它的逻辑略有不同。他start从头开始找,然后从头开始找stop,找到最后一个!
是否有一些参数说re开始后应该寻找最近的 next stop,而不是从最后看。
现在我得到了结果:
['_dfd8357dfd_stop_dlfjdsf_start_kljf8998_stop_sfsdjflkjf_start_fjslkdjfdls_']
我想收到:
['_dfd8357dfd_', '_kljf8998_', '_fjslkdjfdls_']
为了找到所有的出现,而不仅仅是最长的一次,我们需要通过在量词后面添加一个问号来限制量词的贪婪:
http://www.ilnurgi1.ru/docs/python/modules/re.html