考虑代码
import re
mystring = 'XYZABCDEGHIJEGIJKLMNEPABCFGDEQRST'
print re.finditer[start.start():end.start()] for start in re.finditer('(?=A)',mystring) for end in re.finditer('(?=E)',mystring) if end.start()>start.start()]
返回输出: -
ABCDE , ABCDEGHIJE , ABCDEGHIJEGIJKLMNE , ABCFGDE.
我想让发现者在第一个E停下来 拿出输出
ABCDE and ABCFGDE
如何做到
答案 0 :(得分:1)
我想你想要所有字符串的最短匹配以A开头并以E结尾。你可以使用正则表达式'A。*?E'来做到这一点:而不是像'A. * E'那样贪婪找到最小的匹配。您可以使用findall而不是finditer来获取匹配的字符串。总的来说,你有这样的代码:
print re.findall('A.*?E', mystring)