
* Staack, Thomas 3877 RD-IS-E23 (2004-05-28 13:17 +0100)
ich bin neu hier und hoffe, dass ich zum Einen mit dieser Anfrage keinen Fehler gemacht habe [...]
Wie wär's denn 'mal mit einem /Zeilenumbruch/ bei ungefähr siebzig Zeichen? Es ist eine Zumutung, deinen Artikel lesen zu müssen.
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:
if c_regex.search(x):
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...
Lesen solltest du schon können. Für "negative lookbehind" steht in der Hilfe "?<!" und nicht "!" wie in deinem Code. Außerdem steht in dem Beispiel zu "positive lookbehind" ganz klar, daß der "lookbehind" /vor/ dem Match kommt!
Außerdem willst du ja nicht "zurück" sehen sondern vorwärts ("ahead"), da das "AND" hinter dem "begin" kommt (vom Stringanfang aus gesehen). Du kannst aber nicht einfach beliebige Zeichen zwischen dem "begin" und dem "AND" einfach ignorieren.
Richtig ist also: "regexp = r'begin(?!.*AND)".
Allgemein: rücke bitte mit vier Leerzeichen ein (statt einem).
Außerdem hat dein Problem nichts mit Python sondern mit Regulären Ausdrücken zu tun; lies...
* Regular Expressions http://www.grymoire.com/Unix/Regular.html
* Regular Expression HOWTO http://www.amk.ca/python/howto/regex/regex.html http://www.amk.ca/files/howto/regex.pdf
* Tutorial: Using regular expressions https://www6.software.ibm.com/developerworks/education/l-regexp/regexp.zip https://www6.software.ibm.com/developerworks/education/l-regexp/regexp.pdf
* So What's A $#!%% Regular Expression, Anyway?! http://www.devshed.com/c/a/Administration/So-Whats-A-%24%25%25-Regular-Expre...
* Perl Regular Expression Tutorial http://www.english.uga.edu/humcomp/perl/regex2a.html
* A Tao of Regular Expressions http://sitescooper.org/tao_regexps.html
* Tutorial: Regex-Kurs (Reguläre Ausdrücke in TB) http://www.regenechsen.de/regex_de/regex_1_de.html http://www.regenechsen.de/admin/regulaere_ausdruecke_in_tb.zip
* Regular-Expressions.info (Tutorial, Examples and Reference) http://www.regular-expressions.info
Thorsten
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de