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