Am 19.03.2013 11:57, schrieb Andreas Röhler:
Hallo allerseits,
das folgende Stück sollte kein Ergebnis liefern. D.h. sich verweigern, wenn das Ergebnis der fünften Klammer dem der zweiten Klammer entspricht.
import re a = re.match(r'^(.*?) +\f([BIR])([^\f]+)\fR([^\f]+)\f([^\2])([^\f]+)\fR *(.*)', 'blah, blab, \fBblub\fR blah balh \fBh\fR.blub') print(a.group(5))
Leider wird stets das "B" ausgegeben. Wie schreibe ich am besten die Verneinung des Ergebnisses der zweiten Klammer?
Sieht so aus, als gäbe einen keinen Negationsoperator :(
Mit Gruß und Dank,
Andreas
Hier noch einmal ein vereinfachtes Beispiel a = re.match(r'([0-9]+)([db])([^\2]+)', '123dsfaadddd');print(a.groups()) ==> ('123', 'd', 'sfaadddd') Die "d" sollten von Klammer 3 nicht gefunden werden(?)