[Python-de] Reguläre Ausdrücke: wiederholte Gruppen mit non-greedy-Inhalt
Fritz Cizmarov
fritz at sol.at
Don Mar 18 16:35:06 CET 2004
Am Thu, 18 Mar 2004 14:23:45 +0100
Schrieb Yves Forkl <Y.Forkl at srz.de>:
> Hallo!
>
> Ich habe ein kniffliges Problem mit Regulären Ausdrücken zu bieten:
> von einer beliebig wiederholbaren Gruppe mit non-greedy-Inhalt kommt
> nur die letzte Instanz ins Match object. Der Code...
>
> import re
> pat = re.compile( "(<.*?/>)+" )
> pat.search( "<a/><b/>" ).groups()
>
> ...liefert...
>
> ('<b/>',)
>
> ...obwohl er aus meiner Sicht ('<a/>','<b/>') liefern sollte. Das
> passiert nur bei Inhalt mit non-greedy-Operator; ohne wird natürlich
> alles nur eine einzige Gruppe. Aufzählen der Gruppen statt beliebig
> wiederholen geht zwar, ist aber natürlich bei variabler Zahl an
> Gruppen im String nicht praktikabel.
>
Hi Yves,
pat.findall("<a/><b/>")
...liefert...
['<a/>', '<b/>']
Gruß
Fritz