[Python-de] Treffer ausschließen

Andreas Röhler andreas.roehler at online.de
Di Mär 19 12:59:07 CET 2013


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(?)




Mehr Informationen über die Mailingliste python-de