Wie Regex-Literale geparst werden

(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)

In den meisten Fällen benutzt man diese Eigenschaften der Regex-Literale in Perl einfach ohne großes Nachdenken. Perl macht in den meisten Fällen »das Richtige«, das ist eine seiner Stärken. Nur in seltenen Fällen muss man genau wissen, was beim Parsing vor sich geht. Im Folgenden werden die einzelnen Schritte auseinandergenommen:

  1. Das schließende Begrenzungszeichen wird gesucht, und die eventuell darauf folgenden Modifikatoren (/i usw.) werden gelesen. Je nachdem geschieht der Rest des Parsings im Modus »Freie Form«.
  2. Variablen werden interpoliert.
  3. Wenn Regex-Overloading benutzt wird, wird jeder literale Teil der Regex an die Overload-Routine weitergegeben. Diese Teile werden durch die interpolierten Variablen voneinander getrennt; die interpolierten Werte selbst werden nicht von der Overload-Routine verarbeitet.

    Wenn kein Regex-Overloading verwendet wird, werden die \N{...}-Sequenzen aufgelöst.

  4. Die Konstrukte zur Groß- und Kleinschreibung (\Q...\E usw.) werden angewendet.
  5. Das Resultat wird an die Regex-Maschine weitergegeben.

Das ist eine Beschreibung des Verhaltens von Perl, soweit es den Anwendungsprogrammierer angeht. Die interne Verarbeitung ist in Wirklichkeit recht kompliziert. So müssen in Schritt 2 bestimmte Regex-Metazeichen von Variablen unterschieden werden, damit beispielsweise der unterstrichene Teil in ˹klipp$|klar$˼ nicht als die Spezialvariable $| aufgefasst wird.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:
   

Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln