Reguläre Ausdrücke als Teil der Programmiersprache

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

Das Attraktive an den regulären Ausdrücken in Perl ist, dass sie so nahe am Kern der Sprache liegen. Es handelt sich nicht etwa um ein paar simple Bibliotheksfunktionen, sondern um Regex-Operatoren, die eng mit den anderen Operatoren und Konstrukten verwoben sind, die die Sprache ausmachen.

Manchmal scheint es, dass fast alles in Perl mit regulären Ausdrücken verknüpft ist, aber in Wirklichkeit gibt es in Perl nur gerade vier Operatoren, die direkt etwas mit regulären Ausdrücken zu tun haben, außerdem noch ein paar damit verwandte Sprachelemente, die in der folgenden Tabelle aufgeführt sind.

Tabelle: Elemente von regulären Ausdrücken in Perl – Überblick.

Regex-Operatoren  ModifikatorenBeeinflussen, wie ...
m/Regex/mod (siehe Der Match-Operator)   /x /odie Regex interpretiert wird (siehe Regex-Modifikatoren, Regex-Kompilierung, der /o-Modifikator, qr/.../ und Effizienz)
s/ Regex/Ersatztext/mod (siehe Der Substitutionsoperator)   /s /m /idie Maschine auf den Suchtext wirkt (siehe Regex-Modifikatoren)
qr/Regex/mod (siehe Der qr/.../-Operator und Regex-Objekte)   /g /c /eanderes (siehe Alle Treffer herauspflücken – Listenkontext mit dem /g-Modifikator, Jedes Text-Element einzeln erkennen mit /gc, Der /e-Modifikator)
split (...) (siehe Der Split-Operator)      
Pragmas zu regulären Ausdrücken    Daten aus dem Matching (siehe Durch das Matching gesteuerte Spezialvariablen)
use charnames ':full'; (siehe Namen für Unicode-Zeichen)    $1, $2 usw. Eingefangener Text
use overload; (siehe Überladen von Regex-Literalen)    $^N $+ Höchstnummeriertes/Zuletzt zugewiesenes $1, $2 ...
use re 'eval'; (siehe Codemuster interpolieren)    @- @+ Arrays mit Offsets in den Suchstring
use re 'debug'; (siehe Debugging-Informationen zu regulären Ausdrücken)    $& $` $' Treffer-Text, Text davor und danach
(möglichst vermeiden, siehe Die Variablen $`, $& und $' sind »unartig«)
Verwandte Funktionen    Verwandte Variablen
lc lcfirst uc ucfirst (siehe Nächstes Zeichen in Klein- oder Großbuchstaben verwandeln)    $_ Standardsuchtext (siehe Der Standardsuchtext $_)
pos (siehe Die »aktuelle Position« und die pos()-Funktion) quotemeta (siehe Bereich als literalen String interpretieren)  $^R Resultat-Wert (siehe $^R)
reset (siehe Spezielle »Nur Einmal«-Mustersuche mit ?...?) study (siehe Die Funktion study)

Perl ist sehr mächtig und vielseitig, aber diese Macht kann ein zweischneidiges Schwert sein.

Perls größte Stärken

Die reiche Auswahl an Optionen und Verwendungsmöglichkeiten der Regex-Operatoren und -Funktionen ist wohl Perls größte Stärke. Sie können sich in ihrem Verhalten dem Kontext anpassen, in dem sie benutzt werden, und sie tun das oft in der Weise, die der Programmierer beabsichtigt hat. In Programmieren mit Perl (erschienen bei O’Reilly) wird frech behauptet: »Im Allgemeinen tun Perls Operatoren genau das, was Sie erwarten ...« Der Match-Operator m/Regex/ zum Beispiel verhält sich verschieden, je nachdem, wie und in welchem Kontext er gebraucht wird und welche Modifikatoren benutzt werden.

Perls größte Schwächen

Diese geballte Ausdruckskraft und Reichhaltigkeit ist gleichzeitig eine der größten Schwächen von Perl. Es gibt eine Unzahl (Anmerkung: Dieses Kapitel ist immerhin ein Versuch, diese Unzahl aufzuzählen.) von Spezialfällen, Randbedingungen und verschiedenen Kontexten, die sich scheinbar von Fall zu Fall ohne Grund und Vorwarnung ändern. Sie ändern Ihr Skript nur ganz unwesentlich – und schon haben Sie einen dieser Spezialfälle erwischt, von dessen Existenz Sie vielleicht gar nichts wussten. Das Zitat aus Programmieren mit Perl geht weiter: »... es sei denn, Sie erwarten Konsistenz.« In der Informatik werden konsistente und zuverlässige Programmierschnittstellen oft fast als kleine Kunstwerke betrachtet. Diese sind aber oft auch langweilig, und das kann man von Perl nun wirklich nicht behaupten. Perl kann mit allen seinen Möglichkeiten ein erstklassiges Werkzeug in der Hand des geübten Benutzers sein, aber es scheint, dass man zuerst ein paarmal den Daumen statt des Nagels treffen muss, bis man diese Meisterschaft erreicht.

  

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