Wartung und Pflege von regulären Ausdrücken

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

Das zweite Thema, das am Anfang des Kapitels angesprochen wurde, ist die Art, wie die regulären Ausdrücke bei den verschiedenen Programmen syntaktisch verpackt werden müssen. Jedem Programm muss man auf eine bestimmte Art sagen können: »He, hier ist eine Regex, mach dies und das damit.« egrep ist ein sehr einfacher Fall: Die Regex wird in der Argumentenliste übergeben. Wenn hier wie unter Einführung in reguläre Ausdrücke Hochkommas benutzt werden, dann nicht wegen egrep an sich, sondern um eine Interpretation der Metazeichen durch die Shell zu vermeiden. Wenn bei anderen Werkzeugen, etwa bei Programmiersprachen, reguläre Ausdrücke in vielfältigerer Weise benutzt werden, müssen sie da auch aufwendiger verpackt werden, damit das System erkennt, was eine Regex ist und was mit ihr zu tun ist.

Im nächsten Schritt sehen wir uns an, was mit dem Resultat der Mustersuche gemacht wird. Bei egrep wird – wieder sehr einfach – immer dasselbe gemacht, nämlich die Zeilen mit einem Treffer ausgegeben. Wir haben aber schon unter Erweiterte einführende Beispiele gesehen, dass man sehr viel interessantere Dinge damit anfangen kann. Die zwei grundlegenden Aktionen sind das Matching (es wird überprüft, ob die Regex auf den String passt, und es werden eventuell Informationen aus dem String extrahiert) und das Suchen und Ersetzen, die Substitution, bei dem der Suchstring aufgrund der gefundenen Treffer verändert wird. Diese zwei Aktionen gibt es in vielen Variationen, und außerdem existieren viele Varianten, wie man diese Aktionen in einer bestimmten Programmiersprache ausführt.

Bei den Programmiersprachen gibt es im Wesentlichen drei Modelle, wie reguläre Ausdrücke eingesetzt werden: integriert, prozedural und objektorientiert. Beim ersten Modell sind die Regex-Operatoren direkt in die Sprache eingebaut, wie bei Perl. Bei den anderen zwei Modellen gehören die regulären Ausdrücke nicht zum Sprachumfang. Sie werden in Stringform eingegeben und als Argumente an ganz normale Funktionen übergeben, die diese Strings als reguläre Ausdrücke interpretieren. Je nach Funktion wird die eine oder andere Aktion ausgelöst. So wird es in den meisten Sprachen außer Perl gemacht: in Java, in den .NET-Sprachen, in Tcl, Python, PHP, Emacs-Lisp und in Ruby.

  

  

<< 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