s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah blah...'
这只是一个例子,但我希望匹配_ABC_和_CBA_之间的所有内容。所以'superman_is_cool'。 _ABC _..._ CBA _。
可能有多个部分re.findall('_ABC_(.*)(?=_CBA_)', s)
我先试过这个,但显然根本没有正常工作。
答案 0 :(得分:6)
我添加了额外的_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 :(得分:0)
试试这个
re.findall('_ABC_.*_CBA_)', s)