Seite 1 von 1

Regulären Ausdruck suchen - ersetzen mit Ergebnis

Verfasst: Sonntag 27. März 2011, 16:56
von mgraf
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

Re: Regulären Ausdruck suchen - ersetzen mit Ergebnis

Verfasst: Sonntag 27. März 2011, 17:23
von /me
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.

Re: Regulären Ausdruck suchen - ersetzen mit Ergebnis

Verfasst: Sonntag 27. März 2011, 18:41
von mgraf
Danke, das hat mir sehr weitergeholfen!

lg
michi