Regular Expressions

Experten-Werkzeug für Texte

Regular Expressions (RE, RegExp) sind eine spezialisierte Technik zur Analyse und Verarbeitung von Texten. RE sind offen und nicht lizenzpflichtig. Alle modernen Programmiersprachen unterstützen RE.
Die Syntax ist einfach, jedoch sehr mächtig.
Perl Perl Scripts für CGI und Systemverwaltung
Aufgaben Grundlegende Aufgaben: match, replace, store, split
Beispiele Einige RE-Beispiele (Anwendung, Programme)
RE - Syntax Grammatik der Regular Expressions (mit Beispielen)
RE in Programmen Anwendung von RE in Programmiersprachen und Programmen (OpenOffice)
Regular Expressions Online Live RE Online Live mit RE experimentieren
Links Links zum Thema "Regular Expressions"

Aufgaben von Regular Expressions (RE)

Regular Expressions bieten leistungsfähige Funktionen zur Analyse und Aufarbeitung von Texten (Zeichenketten, Strings).
Die grundlegende Syntax (Grammatik) der RE ist gleich, die Anwendung je nach Programmiersprache etwas unterschiedlich.
Aufgabe Erklärung
match Ausführung von Tests mit einem String. Die Test-Vorschrift wird als RE formuliert. Das Ergebnis ist entweder true oder false. Anwendung: Entscheidung, ob ein String die gewünschten Kriterien erfüllt.
Beispiel: Test, ob eine Text-Seite oder -Zeile ein gesuchtes Stichwort enthält.
replace Ersetzen eines oder mehrerer Teil-Strings in einem String. Die Vorschrift dazu wird als RE formuliert. Als Ergebnis wird der String verändert.
store Speichern bzw Isolieren eines oder mehrerer Teil-Strings. Die Vorschrift dazu wird als RE formuliert. Als Ergebnis stehen beliebig viele extrahierte Teile für die weitere Verarbeitung zur Verfügung.
Beispiel: Analyse eines Namens und getrennte Speicherung von Titel, Voranem und Zuname, oder Analyse einer Adresse und getrennte Speicherung von Staat, Postleitzahl, Ort und Detail-Adresse.
split Eine Sonderform der Funktion "store": Aufspaltung eines Strings aus mehreren ähnlichen Bestandteilen nach einer Vorschrift, die als RE formuliert ist. Als Ergebnis stehen beliebig viele extrahierte Teile für die weitere Verarbeitung zur Verfügung.
Beispiele: Aufspaltung einer Text-Zeile in Worte, eines Datums in Jahr, Monat und Tag, einer Zeit in Stunde, Minute und Sekunde usw.

RE-Beispiele (Anwendung, Programme)

Robots
Statistik:
Einfache (Perl)-Programme (robots) 'lesen' den Inhalt sämtlicher Seiten dieses Webs und erstellen daraus z.B. eine Statistik der verwendeten Bilder, CSS-Klassen oder HTML-Elemente. Dazu werden z.B. mit RE alle <img>-Texte aus dem Quelltext isoliert, aus ihnen die Namen src="kugel.gif" der verwendeten Bilder, und aus diesen schließlich die Statistik ihrer Häufigkeit.
Index:
Mit RE kann man für ein ganzes Web regelmäßig und vollautomatisch einen Stichwort-Index mit Häufigkeit und automatisch erstellten Links zu den betreffenden Webseiten herstellen. Die Arbeitszeit beträgt für einige 100 Webseiten typisch ca. 1 Minute, einige 10 Seiten können sogar live nach Stichworten durchsucht werden.
Ähnliche Robots arbeiten z.B. für Suchmaschinen: Sie 'lesen' jedoch nicht die eigenen Webseiten sondern Seiten aus dem Internet. Daraus extrahieren sie Stichworte und Themen, und folgen anschließend den gefundenen Hyperlinks zu weiteren Internet-Seiten.
Reparatur Gelegentlich ist es notwendig, Korrekturen im Quelltext aller Seiten eines Webs durchzuführen. So kann man z.B. mit RE jedes Vorkommen des veralteten HTML-Elements <center>..</center> durch die neue Standard-Version <div style="text-align:center;">..</div> ersetzen. Ein Programm dafür erfordert nur wenige Minuten Arbeitszeit und korrigiert einige tausend Treffer in wenigen Sekunden. Zusätzlicher Vorteil: Das RE-Programm übersieht kein einziges <center>, macht keine Tippfehler und vergisst nicht auf das Sichern der korrigierten Dateien.
Daten Extraktion Wenn ein bestimmter (aktueller) Text aus einem größeren Dokument extrahiert und weiter verarbeitet werden soll, dann sind RE dazu ideal geeignet. So kann man z.B. die Uhrzeit aus jeder (!) beliebigen Webseite eines gut eingestellten Webservers beziehen (Beispiel → HTTP-Header), Börsen-Kurse, Wasserstand oder Wetter-Daten aus entsprechenden Webseiten extrahieren, aus langen Tabellen gezielt die Daten bestimmter Spalten oder Zeilen entnehmen usw.
Klartext ! Die Dokumente einer klassischen Textverarbeitung enthalten nur einen Teil der Daten in Klartext, dazu meist eine große Menge binärer Daten für die Formatierung. (Öffnen sie einmal ein *.doc-Dokument mit einem Klartext-Editor wie notepad.exe ).
Für RE ist nur 'lesbarer' Klartext zugänglich, daher können solche Dokumente nur mit vergleichsweise sehr großem Aufwand verarbeitet werden.
Moderne Programme (z.B. OpenOffice) verwenden an Stelle der veralteten Binär-Daten XML. Dieser Offene Standard codiert beliebige Daten in Klartext. Neben vielen anderen Vorteilen ist daher die automatische Analyse und Verarbeitung solcher Daten mit RE möglich.
Programm-Beispiele (Datum & Zeit, Datei-Pfade, IP-Adressen, Web-Adressen, Allgemeine Texte, usw.)

RegExp-Links Links zum Thema "Regular Expressions"

A.M. Kuchling (RE, speziell Python)
University of Virginia, Stephen Ramsay (RE, speziell Linux & grep)
Webreference (RE, speziell Javascript)
Visibone (RE, speziell Javascript)
Zvon: Regular Expressions Reference (en)
Zvon: Regular Expressions Tutorial (en) (de)
O'Reilly Regular Expressions
Regular-Expressions.info (en)
XHTML CSS