Regex + Capturing Groups
Verfasst: Mittwoch 16. April 2008, 22:48
Hallo,
Ich habe einen String, der (vereinfacht) in etwa so aussieht:
Die Anzahl der TEST-Tags variiert.
Ich will nun mit regulären Ausdrücken den Text zwischen den einzelnen Tags in eine Liste kriegen, also groups() verwenden können. Der Ansatz wäre grundsätzlich:
Das Problem ist dabei allerdings, dass ich aufgrund der Klammer (?: ... ) immer lediglich den letzten Match via groups() bekomme, also in diesem Falle nur 'foobar' anstatt wie gewünscht ['foo', 'bar', 'foobar']. Wie könnte man den Ausdruck umformulieren, sodass dies möglich wird?
Ich habe einen String, der (vereinfacht) in etwa so aussieht:
Code: Alles auswählen
<TEST>foo</TEST><TEST>bar</TEST><TEST>foobar</TEST>
Ich will nun mit regulären Ausdrücken den Text zwischen den einzelnen Tags in eine Liste kriegen, also groups() verwenden können. Der Ansatz wäre grundsätzlich:
Code: Alles auswählen
pattern = re.compile(r"""
(?:
<TEST>([^<]+)</TEST>
)+
""",
re.VERBOSE
)