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 Klammerpaar 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 Klammerpaar, \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 © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000