Perl
(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)
Perl kommt in diesem Buch sehr oft vor, und das hat gute Gründe. Perl ist verbreitet, hat eine äußerst reiche Regex-Sprache, ist frei und einfach erhältlich, der Einstieg für den Anfänger ist einfach, und es gibt Perl für eine bemerkenswert große Anzahl von Plattformen, unter anderem für alle Arten von Windows, Unix und MacOS.
Manche der Sprachelemente ähneln denen von C oder anderen traditionellen Programmiersprachen, aber das ist schon alles, was ähnlich ist. Die Art, wie man mit Perl umgeht, um ein Problem zu lösen – die perlige Art (The Perl Way) –, unterscheidet sich stark vom Vorgehen bei traditionellen Programmiersprachen. Der grobe Aufbau eines Perl-Skripts lehnt sich oft an die Struktur an, wie man sie von strukturierten und objektorientierten Sprachen kennt, aber die eigentliche Datenverarbeitung stützt sich in hohem Maße auf reguläre Ausdrücke. Reguläre Ausdrücke spielen in fast jedem Perl-Programm eine entscheidende Rolle, das kann man, denke ich, mit gutem Gewissen sagen. Die Aussage stimmt für riesige Pakete mit zigtausend Zeilen Code, aber auch für einen Einzeiler wie
% perl -pi -e 's{([-+]?\d+(\.\d*)?)F\b}{sprintf "%.0fC", ($1-32)*5/9}eg' *.txt
der Fahrenheit-Temperaturen in *.txt-Dateien durch Celsius ersetzt (eine Reminiszenz an das erste Beispiel aus Erweiterte einführende Beispiele).
In diesem Kapitel
Dieses Kapitel befasst sich mit allen Eigenschaften von Perl, (Anmerkung: Dieses Buch behandelt Perl Version 5.8.8.) die mit regulären Ausdrücken zu tun haben – den Details seiner Regex-Geschmacksrichtung und den Operatoren, bei denen reguläre Ausdrücke eingesetzt werden. Die Dinge, die mit regulären Ausdrücken zu tun haben, werden von Grund auf erklärt; ich setze aber eine gewisse Vertrautheit mit Perl im Allgemeinen voraus. Wenn Sie Erweiterte einführende Beispiele durchgearbeitet haben, genügt das vielleicht schon fürs Erste. Manches spreche ich nur kurz an, ohne es genau zu erläutern; von den Sprachelementen, die nicht direkt mit regulären Ausdrücken zu tun haben, erkläre ich kaum etwas. Es kann nützlich sein, die Dokumentation von Perl zur Hand zu haben oder vielleicht das Buch Programmieren mit Perl aus dem O’Reilly Verlag.
Wichtiger als Ihr Vorwissen über Perl ist vielleicht Ihr Wunsch, Neues über Perl zu erfahren. Dieses Kapitel ist keine besonders leichte Lektüre. Es ist nicht mein Ziel, ein Buch über Perl zu schreiben. Ich kann mir deshalb den Luxus leisten, mich nur auf die interessanten Dinge zu konzentrieren. Ich brauche die Sprache nicht in einem kohärenten Lehrgang zu erklären und muss daher nicht auf Dinge verzichten, die für Anfänger zu schwierig sein könnten. Was sich aber durchaus wie ein roter Faden durch das Kapitel zieht, ist der Wunsch nach einem tiefen Verständnis der behandelten Dinge. Manche dieser Themen sind komplex und im Detail verzwickt und vielleicht nicht sofort völlig verständlich. Ich empfehle Ihnen, dieses Kapitel erst einmal komplett durchzulesen, um ein Bild von den Zusammenhängen zu bekommen. Danach können Sie es als Handbuch zum Nachschlagen benutzen.
Der Aufbau des Kapitels wird Ihnen nach dieser kurzen Vorschau deutlicher:
- Unter Perls Regex-Dialekt werden die vielen von Perl unterstützten Metazeichen behandelt, außerdem einige zusätzliche Features zur Behandlung von Regex-Literalen.
- Perliges über reguläre Ausdrücke behandelt einige Aspekte von Perl, die für die regulären Ausdrücke besonders wichtig sind. Themen wie dynamische Geltungsbereiche und der Regex-Kontext werden genauer beschrieben – immer mit dem Augenmerk auf ihr Verhältnis zu regulären Ausdrücken.
- Reguläre Ausdrücke sind nur dann nützlich, wenn man sie anwenden kann. In den folgenden Abschnitten werden die verschiedenen Operatoren behandelt, die reguläre Ausdrücke auf manchmal magische Weise verwenden:
Der qr/.../-Operator und Regex-Objekte
Der Match-Operator
Der Substitutionsoperator
Der Split-Operator - Unter Verrückte Dinge mit den Regex-Erweiterungen in Perl werden einige weitergehende und manchmal verrückte Erweiterungen in Perl behandelt, z.B. die Möglichkeit, beliebigen Perl-Code aus einer Regex heraus auszuführen.
- Effizienz in Perl behandelt ein Thema, das jeden Programmierer angeht. Perl benutzt einen traditionellen NFA, deshalb können die unter Die Kunst, reguläre Ausdrücke zu schreiben beschriebenen Methoden ohne Weiteres verwendet werden. Dazu kommen natürlich die Besonderheiten von Perl, die Einfluss darauf haben, wie und vor allem wie schnell Ihre Regex-Programme ablaufen.
Perl in den früheren Kapiteln
Perl wird nebenher in den meisten Teilen dieses Buchs verwendet oder besonders erwähnt:
- Erweiterte einführende Beispiele enthält eine Einführung in Perl mit vielen Regex-Beispielen.
- Features und Dialekte enthält einen kurzen Abriss über die Entstehungsgeschichte von Perl (siehe Auch Perl entwickelt sich) und behandelt zahlreiche Gebiete, die Perl direkt betreffen, z.B. Zeichencodierungen (auch Unicode, siehe Zeichencodierungen) und Match-Modi (siehe Regex-Modi), und gibt einen längeren Überblick über die vorhandenen Metazeichen (siehe Übliche Metazeichen).
- Wie Regex-Maschinen arbeiten beschreibt die traditionelle NFA-Maschine genauer, die in Perl verwendet wird. Für Perl-Benutzer ist Wie Regex-Maschinen arbeiten zentral.
- Regex-Methoden aus der Praxis enthält viele Beispiele, die das in Wie Regex-Maschinen arbeiten Behandelte illustrieren. Die meisten Programmbeispiele sind in Perl geschrieben, aber auch die anderen behandeln Themen, die in Perl relevant sind.
- Die Kunst, reguläre Ausdrücke zu schreiben ist wichtig, wenn es um die Effizienz von Perl-Programmen geht.
In den früheren Kapiteln habe ich die Perl-Programmbeispiele oft sehr einfach geschrieben, zum einen, damit das eigentliche Anliegen klarer hervortritt, zum anderen, damit auch die Leser etwas verstehen, die kein Perl können. In diesem Kapitel sind die Beispiele im typischen Perl-Stil geschrieben.
- Reguläre Ausdrücke als Teil der Programmiersprache
- Perls Regex-Dialekt
- Perliges über reguläre Ausdrücke
- Der qr/.../-Operator und Regex-Objekte
- Der Match-Operator
- Der Substitutionsoperator
- Der Split-Operator
- Verrückte Dinge mit den Regex-Erweiterungen in Perl
- Effizienz in Perl
- Abschließende Betrachtungen
<< 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