1

私は文字列を持っています:

SomeTextSomeTextA SomeThing BSomeTextSomeTextA SomeThingElse BSomeText

A と B で囲まれており、SomeText に A ... B の出現が含まれていないと仮定しているため、Strings SomeThing と SomeThingElse 文字列を返したいと思います。

どんなヒントでも大歓迎です。

これが私が試したものですが、うまくいきません:

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 に答える