Komplexes ersetzen mit regulären ausdrücken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
davidmm
User
Beiträge: 9
Registriert: Dienstag 13. Oktober 2009, 15:52

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)
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

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
davidmm
User
Beiträge: 9
Registriert: Dienstag 13. Oktober 2009, 15:52

Danke, damit hatte ich nicht gerechnet. Ich ging fest davon aus, dass das nur mit Strings funktioniert.
Antworten