[Python-de] Regular Expression - negative lookbehind

Staack, Thomas 3877 RD-IS-E23 Thomas.Staack at heidelberg.com
Fre Mai 28 13:17:27 CEST 2004


Hallo,
ich bin neu hier und hoffe, dass ich zum Einen mit dieser Anfrage keinen Fehler gemacht habe und zum Anderen, dass mir jemand bei meinem Problem helfen kann:
 
Ich möchte in einer Regular Expression das "negative lookbehind" einsetzen - habe es aber auch nach stundenlangem Versuchen nicht hinbekommen.
 
Hier der Auszug aus der Python Help:
 
(?<!...) 

Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion. Similar to positive lookbehind assertions, the contained pattern must only match strings of some fixed length. Patterns which start with negative lookbehind assertions may match at the beginning of the string being searched.
 
 
Und hier mein Testprogramm:
 
import re
line_s = ['#begin-a AND End-a 2', '!begin-b and End-b 3']
regexp = r'begin(!AND)'
c_regex = re.compile(regexp)
for x in line_s:
 print '-' * 20, x
 if c_regex.search(x) != None:
  print 'found it...'
 else: 
  print "didn't find it..."

 
Ich erwarte, dass einmal der if- und einmal der else-Zweig durchlaufen wird - die RegularExpression sollte ein 'begin' mit einem grossgeschriebenen 'AND' nicht als Treffer werten...
 
Vielen Dank für die Hilfe im voraus
Thomas Staack
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde geschreddert...
URL: http://starship.python.net/pipermail/python-de/attachments/20040528/b1a93405/attachment.html