正则表达式:匹配不是某个字符串的序列

时间:2011-01-09 06:51:05

标签: python regex

s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah blah...'

这只是一个例子,但我希望匹配_ABC_和_CBA_之间的所有内容。所以'superman_is_cool'。 _ABC _..._ CBA _。

可能有多个部分
re.findall('_ABC_(.*)(?=_CBA_)', s)

我先试过这个,但显然根本没有正常工作。

2 个答案:

答案 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)
相关问题