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

neg. Lookbehind funktioniert nicht

Beitragvon 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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Beitragvon 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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder