s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah blah...'
這只是一個例子,但我想匹配_ABC_和_CBA_之間的所有內容。所以'superman_is_cool'。可能有_ABC _..._ CBA_的多個部分。正則表達式:不匹配字符串的匹配順序
re.findall('_ABC_(.*)(?=_CBA_)', s)
我首先嚐試了這一點,但顯然不能正確工作。
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