1

我有一个字符串:

SomeTextSomeTextA SomeThing BSomeTextSomeTextA SomeThingElse BSomeText

我希望返回字符串 SomeThing 和 SomeThingElse 字符串,因为它们用 A 和 B 括起来,并假设 SomeText 不包含任何 A ... B 出现。

任何提示将不胜感激。

这是我尝试过的,但它不起作用:

import re

string = 'SomeTextSomeTextASomeThingBSomeTextSomeTextASomeThingElseBSomeText'
regex='(A.*B)'

我想正则表达式都不正确,我也不知道如何访问匹配项。是finditer……还是……的比赛?

4

1 回答 1

3

尝试使用re.findall

>>> print re.findall('A(.*?)B', s)
['SomeThing', 'SomeThingElse']

在线查看它:ideone

注意问号。没有它,匹配就会贪婪地完成——它会消耗尽可能多的字符。

于 2012-07-04T21:54:59.420 回答