Neue Techniken bei regulären Ausdrücken

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

Mit Perl in der Version 5.005 sind einige Varianten hinzugekommen:

*Der Backtracking-Algorithmus (insbesondere die Regeln 3 und 5) können zu einem exponentiell anwachsenden Aufwand führen, der bei längeren Texten unzumutbar ist. Hierfür kann die Konstruktion (?>regexp) recht nützlich sein, die regexp an der aktuellen Stelle im Text untersucht, als ob kein umgebender regulärer Ausdruck existieren würde. Backtracking kommt entsprechend nicht zum Zuge.
 
*Mit (?(condition)yes-pattern|no-pattern) bzw.
(?(condition)yes-pattern) können reguläre Ausdrücke in Abhängigkeit von einer Bedingung eingefügt werden, die entweder

*eine natürliche Zahl n ist und dann zutrifft, falls das Muster der n-ten Klammer zutraf oder
 
*eine Zusicherung ist, die keinen Text erfaßt (Vor- oder Rückschau, bestimmte Punkte).
 

*Mit (?{ code }) können Perl-Ausdrücke eingebettet werden, die immer zutreffen. Da Sichtbarkeitsbereiche entsprechend der Backtracking-Ebenen gezogen werden, kann auf diese Weise beispielsweise ermittelt werden, welchen Wert ein bestimmter Quantifikator angenommen hat.
 

 [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