Rückwärtsverweise

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

double.pl
#!/usr/local/bin/perl -w

while(<>) {
   print if /^(\w+)\1$/;
}

*Rückwärtsverweise gehören zu den Techniken, die den formalen Rahmen regulärer Ausdrücke sprengen (d.h. die damit beschriebenen Sprachen sind nicht mehr notwendigerweise regulär). Dennoch sind sie beliebt und werden beispielsweise von vi(1), egrep(1) und natürlich Perl unterstützt.
 
*Ein Rückwärtsverweis bezieht sich auf bereits erkannten Text, der durch ein Klammernpaar eingegrenzt ist. Der Verweis trifft zu, wenn der bereits erkannte Text an der Stelle des Verweises erneut vorkommt.
 
*\1 ist der Rückwärtsverweis auf das erste Klammernpaar, \2 auf das zweite usw. Mehrstellige Verweise sind zulässig -- führende Nullen jedoch nicht (das wäre in Konflikt zu den Sonderzeichen).
 
*Rückwärtsverweise sollten nicht auf der rechten Seite des s///-Operators stehen -- dort sind $1, $2 usw. zu verwenden.
 
*Auf /usr/dict/words angewandt, liefert das Beispiel beriberi, coco, couscous, dodo, gogo, ii, juju, lulu, murmur, papa, tartar, testes, tete und tutu.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2000 Ingo Melzer, in HTML konvertiert am 10.11.2000