Seite 1 von 1

Frage zu regular expression

Verfasst: Montag 10. März 2008, 11:10
von meneliel
Ich möchte aus einem String auslesen, was zwischen zwei Wörtern steht. Hab ein bisschen gesucht und was gefunden, was ein bisschen passen könnte

folgender Ansatz:

Code: Alles auswählen

import re
expr = re.compile("Wort1.", re.IGNORECASE)
expr.sub("",selection)
Damit krieg ich zumindest schon alles nach dem 1. Wort.
Probiere jetzt schon ewig rum, schaffe es aber nicht so richtig, dass vor dem 2. Wort Schluss ist mit auslesen :(

Re: Frage zu regular expression

Verfasst: Montag 10. März 2008, 11:30
von helduel
Moin,

was du da machst ist lediglich "Wort1." (wobei der Punkt ein beliebiges Zeichen darstellt) mit einem leeren String zu ersetzen - also zu löschen. Du willst, denk ich mal. eher sowas:

Code: Alles auswählen

import re
text = "Hallo Wort1, dies ist Wort2."
expr = re.compile("Wort1(.*)Wort2", re.IGNORECASE)
print expr.search(text).groups()
Vielleicht solltest du dich nochmal eingehender mit Regulären Ausdrücken beschäftigen. Auf http://regular-expressions.info gibt es IMO ein ganz gutes Tutorial, das auch erklärt, wie so eine Regex-Engine genau funktioniert.

Gruß,
Manuel

Verfasst: Montag 10. März 2008, 11:39
von meneliel
Genau so was.

Ich hatte nur Wort1 Stehen, weil ich nicht wusste, wie ich Wort2 da rein bringe.

Hatte es sogar schon mit einem "Wort1.*Wort2" probiert, aber das brachte nicht die erwünschte Ausgabe.

Aber so, wie du es geschrieben hast, funktioniert es genau richtig, aber auch nur mit search und nicht mit sub ... hmm.

Danke für den Link.
*gestehen muss, dass ich mit den Erklärungen da: http://docs.python.org/lib/module-re.html Probleme hatte die zu verstehen :(, hab das net so richtig kapiert :(*

Verfasst: Montag 10. März 2008, 12:43
von BlackJack
Zusätzlich zur Doku zum Modul ist das Regular Expression HOWTO lesenswert.

Und natürlich das überall erwähnte Buch von Friedl. :-)

Verfasst: Montag 10. März 2008, 20:48
von meneliel
BlackJack hat geschrieben:Zusätzlich zur Doku zum Modul ist das Regular Expression HOWTO lesenswert.

Und natürlich das überall erwähnte Buch von Friedl. :-)
Das HowTO hab ich schon mehrfach drin rumgelesen :(

Buch von Friedl? Mal suchen geh....

Verfasst: Montag 10. März 2008, 20:56
von Leonidas
meneliel hat geschrieben:Buch von Friedl? Mal suchen geh....
Mastering Regular Expressions. Fast schon legendär, ich habe allerdings die 1. Ausgabe, die noch von Python 1.4 handelt. Ist aber recht egal, denn das Buch ist nicht sonderlich Implementationsgebunden.

Verfasst: Dienstag 11. März 2008, 07:43
von meneliel
Das Hatte ich in der Buchhandlung sogar schon mal in der Hand :)...
Danke. Ich glaube da geh ich heute mal hin ...