Seite 1 von 1

neg. Lookbehind funktioniert nicht

Verfasst: Dienstag 27. Dezember 2005, 11:35
von toby
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.

Verfasst: Dienstag 27. Dezember 2005, 15:32
von Leonidas
Versuchs mal mit

Code: Alles auswählen

reg_exp_code = r'(?<=%s).*?(?=%s)' % (start, stop)
Darin ist sowohl Lookahead als auch negativer Lookahead.

Verfasst: Dienstag 27. Dezember 2005, 15:37
von joe
Leonidas hat geschrieben:Darin ist sowohl Lookahead als auch negativer Lookahead.
Nein. Das ist ein lookbehind und ein lookahead und beide sind positiv.
joe

Verfasst: Dienstag 27. Dezember 2005, 15:45
von Leonidas
Ups, sorry. Dann werf ich mal das passende Kapitel aus dem Regex-HOWTO in die Runde.