Einführung in reguläre Ausdrücke

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

Hier ein Szenario: Sie bekommen den Auftrag, alle Seiten auf einem Webserver nach verdoppelten Wörtern zu durchsuchen. Solche Verdopplungen (wie »das das«) entstehen häufig bei Texten, die mehrfach überarbeitet werden. Ihre Aufgabe ist es, eine Lösung zu finden, die

  • mehrere Dateien überprüft, jede Zeile mit verdoppelten Wörtern herausschreibt, die Verdopplungen (mittels ANSI-Escape-Sequenzen) hervorhebt und bei jeder Zeile den Dateinamen angibt,
  • auch dann korrekt arbeitet, wenn das eine Wort am Ende einer Zeile und das verdoppelte am Anfang der nächsten Zeile steht,
  • Groß- und Kleinschreibung wie bei ›Das das ...‹ ignoriert sowie beliebige Mengen von Whitespace (Leerzeichen, Tabulator, Zeilenende usw.) zwischen den Wörtern zulässt und
  • auch Wörter findet, die durch HTML-Tags (neben Whitespace) getrennt sind. HTML-Tags werden in Webseiten benutzt, um beispielsweise ein Wort fett gedruckt hervorzuheben: ›... das ist <B>sehr</B> sehr wichtig ...‹.

Eine ganz hübsche Liste von Anforderungen! Aber das Problem muss gelöst werden, und es ist ein Problem aus der Praxis. Ich habe ein solches Programm auf eine Version dieses Manuskripts angewandt und war erstaunt über die Menge der Verdopplungen. Es gibt natürlich viele Programmiersprachen, mit denen sich diese Aufgabe lösen lässt, aber eine, die reguläre Ausdrücke kennt, macht die Lösung entschieden einfacher.

Reguläre Ausdrücke sind ein mächtiges, flexibles und effizientes Mittel, um Texte zu bearbeiten. Reguläre Ausdrücke im engeren Sinne sind eine generelle Notation zur Beschreibung von Textmustern, beinahe wie eine kleine Programmiersprache zum Prüfen und zum Manipulieren von Texten. Mit den zusätzlichen Mitteln eines bestimmten Programmierwerkzeugs können reguläre Ausdrücke benutzt werden, um alle Arten von Text zu erweitern, zu reduzieren und auf jede erdenkliche Art misshandeln. Es kann sich um einfache Dinge handeln wie um die Suchfunktion eines Texteditors oder um komplexe wie eine ganze Textverarbeitungssprache. Die folgenden Seiten zeigen, wie reguläre Ausdrücke produktivitätssteigernd eingesetzt werden können. Es zeigt, wie man in regulären Ausdrücken denkt und so ihr volles Potenzial einsetzen kann.

Ein vollständiges Programm zur Lösung der gestellten Aufgabe kann aus einigen wenigen Zeilen einer modernen Programmiersprache bestehen, die reguläre Ausdrücke kennt. Mit einer einzigen »Suchen und Ersetzen«-Anweisung können verdoppelte Wörter gefunden und hervorgehoben werden. Mit einer weiteren solchen Anweisung werden alle Zeilen weggelassen, die keine Verdopplungen enthalten, sodass nur die interessanten Zeilen übrig bleiben. Mit einer dritten Anweisung wird zu jeder Zeile der Name der Datei ausgegeben, aus der die Zeile stammt. Unter Erweiterte einführende Beispiele finden Sie in Perl und Java ausprogrammierte Beispiele dazu.

Die Programmiersprache (Perl, Java, VB.NET oder was auch immer) stellt das Umfeld bereit, aber die wirkliche Kraft kommt aus den regulären Ausdrücken. Indem Sie mit diesem Potenzial umgehen lernen, werden Sie lernen, reguläre Ausdrücke für Ihre eigenen Zwecke zu verwenden, um Text zu durchsuchen, hervorzuheben und uninteressanten Text wegzulassen. Sie werden Ihre regulären Ausdrücke mit den Konstrukten der Programmiersprache kombinieren und den zu bearbeitenden Text damit manipulieren – ob es sich nun um Escape-Sequenzen oder um das Weglassen oder Ändern von Text handelt.

  

  

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