正则表达式:不匹配字符串的匹配顺序
问题描述:
s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah blah...'
这只是一个例子,但我想匹配_ABC_和_CBA_之间的所有内容。所以'superman_is_cool'。可能有_ABC _..._ CBA_的多个部分。正则表达式:不匹配字符串的匹配顺序
re.findall('_ABC_(.*)(?=_CBA_)', s)
我首先尝试了这一点,但显然不能正确工作。
答
我增加了一个额外的_ABC_
,_CBA_
对以确保它找到的所有比赛:
>>> s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah _ABC_blah_CBA_...'
>>> re.findall('_ABC_(.*?)_CBA_', s)
['superman_is_cool', 'blah']
的?
使*
运营商非贪婪所以认定为尽可能短的比赛。没有它,结果将是['superman_is_cool_CBA_ ...blah blah _ABC_blah']
。
+1不过得去贪婪咬伤;) – delnan 2011-01-09 07:00:41