[Python-de] Reguläre Ausdrücke: wiederholte Gruppen mit non-greedy-Inhalt
Yves Forkl
Y.Forkl at srz.de
Don Mar 18 14:23:45 CET 2004
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.
Hat jemand eine Erklärung dafür? Oder einen Vorschlag, wie ich auf
andere Weise alle so aufgebauten Gruppen in das Match object kriege?
(Von der Verwendung von Modulen wie htmllib o.ä. zum Parsen von HTML mal
abgesehen.)
Mit besten Grüßen
Yves Forkl
--
Yves Forkl <Y.Forkl at srz.de> · Tel. 030 / 7 53 01 - 335
Satz-Rechen-Zentrum Berlin · http://www.srz.de/
- Firmengruppe BessCom · http://www.besscom.de/ -