komplexer regulärer Ausdruck

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.
alexandra

komplexer regulärer Ausdruck

Beitragvon alexandra » Montag 26. Dezember 2005, 16:11

Servus,
leider bin ich total am Verzweifeln da ich es seit Tagen nicht hinbekomme folgenden reg. Ausdruck hinzubekommen.
Er hat in Worten ausgedrückt folgendes Muster:
-vor einem bestimmten Wort ('def') können 0 bis 2 Wörter stehen.[?]
-keines dieser voranstehenden Wörter darf 'tst' oder 'tzt' heißen[?]
-dann kommt also das gegebene Wort: 'def'
-nachfolgend soll alles ermittelt/ausgelesen/gematcht werden bis zum nächsten Punkt. den geeigneten Regexp hierfür habe ich bereits...

Die mit [?] versehenen Angaben bekomme ich einfach nicht hin. Ich hoffe, die Beschreibung ist eindeutig und Ihr seid in der Lage und Stimmung mir hierbei zu helfen. Denn ich schaffs einfach nicht. Hab schon versucht mit <!? uvm...
Danke
joe

Re: komplexer regulärer Ausdruck

Beitragvon joe » Montag 26. Dezember 2005, 19:27

Hi!
alexandra hat geschrieben: Hab schon versucht mit <!? uvm...

Wenn, dann eher mit (?<!...). Aber ich denke, das ist mit einem regexp nicht zu lösen. Ermittle besser die wörter vorm def mit dem regexp und prüfe sie dann ab.

Ich würde da aber auf regexps verzichten. Folgendes wird deinen anspruch sicherlich nicht gerecht, da auch einiges infos fehlen (Was ist für dich ein wort? Was trennt die wörter, ein leerzeichen, beliebige whitespaces in beliebiger anzahl? etc.).

Code: Alles auswählen

text = "abc def ghi jkl. trullala"
text = text.split(".")[0]
woerter = text.split(" ")
pos = woerter.index("def")
if pos < 3 and not set(("tst","tzt")) & set(woerter[:pos]):
    print text.split(" ",pos+1)[-1]

Das berücksichtigt nicht, mehrfache whitespaces hintereinander und crasht bei fehlenden def und punkt.
joe

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder