Regulären Ausdruck suchen - ersetzen mit Ergebnis

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
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Hallo,
ich beschäftige mich seit einiger Zeit mit folgenden Problem - und zwar erhalte ich aus einer Anwendung folgenden Beispiel-Text
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque congue, magna vitae hendrerit luctus, sapien enim adipiscing ante, at euismod lorem nulla ut nisl. Proin ultrices sodales quam, eget [[w:vestibulum lorem|2]] dictum aliquet. Suspendisse potenti. Vestibulum vulputate mi et diam gravida nec euismod mi lobortis. Nulla sapien urna, tempor eu bibendum vel, lacinia ac metus. Nam euismod dapibus eros, sed [[i:dictum turpis rutrum|1]] sed. Sed feugiat nibh turpis, at lobortis lorem. Suspendisse sed felis lorem, ac imperdiet tellus. Nulla lectus orci, egestas et blandit a, lobortis nec velit. Sed blandit auctor ligula, et dignissim augue pharetra quis. Aliquam erat volutpat. Sed scelerisque pulvinar egestas.
Was mein Problem ist:
Suche alle Ausdrücke mit [[ XX ]] und ersetze diese mit dem jeweiligen Ergebnis des Ausdrucks

Also zB:
[[w:vestibulum lorem|2]] zerlege ich mittels

Code: Alles auswählen

text = re.sub(re.compile('\[\[(.*?):(.*?)\|(.*?)\]\]'), '_TEXT_', text)
in seine einzelnen Bestandteile

Code: Alles auswählen

Array
(
    [0] => [[w:vestibulum-lorem|2]]
    [1] => w
    [2] => vestibulum-lorem
    [3] => 2
)
wenn
w (=[0]) suche den Wert nach dem : in der DB- Spalte w und gib das 2te (=[3]) ergebnis aus
wenn
f (=[0]) dann such den wert nach dem : , im dateisystem und gib den Dateinamen aus

Es geht mir hier eigentlich nur um eine Hilfestellung wie ich das Suchen & Ersetzen mit einem Ergebnis machen kann, die Funktionen bekomme ich (hoffentlich ;-) ) alleine hin...
Das ganze soll natürlich bei allen auftauchenden [[]] auf einmal funktionieren :-)

Ich hoffe ich hab mich halbwegs verständlich erklärt und jemand kann mir helfen...

lg
michi
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

mgraf hat geschrieben:Es geht mir hier eigentlich nur um eine Hilfestellung wie ich das Suchen & Ersetzen mit einem Ergebnis machen kann, die Funktionen bekomme ich (hoffentlich ;-) ) alleine hin...
Schau dir mal http://docs.python.org/library/re.html#re.sub an. Der Parameter repl darf auch eine Funktion sein.
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Danke, das hat mir sehr weitergeholfen!

lg
michi
Antworten