neg. Lookbehind funktioniert nicht

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
toby

Dienstag 27. Dezember 2005, 11:35

hallo!
warum tut dieser code nicht, was er soll.
da im str kein boese, sondern nur boehse vorkommt, ist es verwunderlich, dass gar kein match vorhanden ist.

Code: Alles auswählen

import re,string
regexp="(<?!boese) (.*?) im"
str="der boehse mann im mond"
treffer=re.compile(regexp,re.I|re.M)
matches=treffer.findall(str)
print matches
wie muss der regexp stattdessen heißen?
danke

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 27. Dezember 2005, 15:32

Versuchs mal mit

Code: Alles auswählen

reg_exp_code = r'(?<=%s).*?(?=%s)' % (start, stop)
Darin ist sowohl Lookahead als auch negativer Lookahead.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
joe

Dienstag 27. Dezember 2005, 15:37

Leonidas hat geschrieben:Darin ist sowohl Lookahead als auch negativer Lookahead.
Nein. Das ist ein lookbehind und ein lookahead und beide sind positiv.
joe
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 27. Dezember 2005, 15:45

Ups, sorry. Dann werf ich mal das passende Kapitel aus dem Regex-HOWTO in die Runde.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten