Artikel im Internet unter http://www.hidemail.de/blog/vorausschauende-und-zurueckblickende-suche-perl.shtml.
Freitag, 2.3.2007, 00:23:28 Uhr

Vorrausschauende und zurückblickende Suche mit regulären Ausdrücken


Vorausschauende und zurückblickende Suche mit Perl - hört sich ja mächtig kompliziert an! Daß diese Suchart aber durchaus sinnvoll und auch praktisch ist, sieht man im ersten Beispiel:

my $t = "Bandwurm Regenwurm Regenschirm Regenschauer";
if($t =~ /Regen(?=scha)\w+/) { print "gefunden ($&)"; } else { print "nicht gefunden"; } # Test 1


Ausgabe: gefunden: Regenschauer

Was passiert hier? Im Skalar $t ist der zu durchsuchende Text vorhanden. Die RegEx sucht dann nach einem Vorkommen von Regen, gefolgt von scha und dann mindestens einem oder mehreren Buchstaben.
Gefunden wird Regenschauer.

Die vorausschauende und zurückblickende Suche kennt folgende Modi:
(?=...) positive Vorausschau nur dann erfolgreich, wenn ... folgt
(?!...) negative Vorausschau nur dann erfolgreich, wenn ... nicht folgt
(?<=...) positive Rückschau nur dann erfolgreich, wenn ... vorangeht
(?<!...) negative Rückschau nur dann erfolgreich, wenn ... nicht vorangeht


Artikel im Internet unter http://www.hidemail.de/blog/vorausschauende-und-zurueckblickende-suche-perl.shtml.