Seite 1 von 1

Komplexes ersetzen mit regulären ausdrücken

Verfasst: Freitag 23. April 2010, 10:10
von davidmm
Hallo Forum,

Ich versuche in einem langen string Tags der Art [tag]Inhalt[/tag] zu ersetzen.
Beim ersetzen will ich allerdings den Inhalt mit ein paar Zeilen Python auswerten, weshalb ich nicht einfach mit "sub" ersetzen kann.

Ich habe mir inzwischen die Finger wund gesucht, aber irgendwie scheine ich auf dem Schlauch zu stehen. Ich schaffe es zwar mit findall die entsprechenden stellen zu finden, aber wie ersetze ich sie nun?

Code: Alles auswählen

p=re.compile(r'\[tag\](.+?)\[/tag\]', re.DOTALL)
m = p.findall(value)

Verfasst: Freitag 23. April 2010, 10:22
von helduel
Moin!

Schau mal in die Doku. Die sub-Methode akzeptiert auch eine Funktion, die pro Match aufgerufen wird und deren Rückgabe-Wert einfügt.

Gruß,
Manuel

Verfasst: Freitag 23. April 2010, 10:41
von davidmm
Danke, damit hatte ich nicht gerechnet. Ich ging fest davon aus, dass das nur mit Strings funktioniert.