Zum Inhalt springen

Regulärer Ausdruck

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Oktober 2002 um 21:43 Uhr durch 80.140.29.9 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Reguläre Ausdrücke bilden eine Famile von kompakten, leistungsfähigen formalen Sprachen mit denen sich (Unter-)Mengen von Zeichenketten beschreiben lassen. Diese Sprachen werden von vielen Texteditoren und Hilfsprogrammen (hauptsächlich unter Unix) verwendet um bestimmte Muster zu suchen und dann durch etwas anderes zu ersetzen oder eine Aktion auszuführen. Programme, die reguläre Ausdrücke benutzen sind z.B. egrep, sed und awk, aber auch in Programmiersprachen wie Perl und Tcl, oder Texteditoren wie Emacs und vi lassen sich reguläre Ausdrücke verwenden.

Die Ursprünge regulärer Ausdrücke stammen aus der Theorie über formale Sprachen. Eine formale Sprache ist durch eine Menge von Zeichenketten beschrieben. In der Theorie untersucht und klassifiziert man diese Mengen. Der Mathematiker Stephen Kleene benutze eine Notation, die er reguläre Mengen nannte. Ken Thompson nutze diese Notation um qed (eine Vorgängerversion des Unix-Editors ed) zu bauen und später das Werkzeug grep zu schreiben. Seither implementieren sehr viele Programme Funktionen um reguläre Ausdrücke zu nutzen. Viele davon benutzen die regex-Bibliothek von Henry Spencer.

Reguläre Ausdrücke bestehen aus mehreren Klassen unterschiedlicher Zeichen (sogenannten Metazeichen)

Quantifizierern
+ matcht den voranstehenden Ausdruck wenn er mind. einmal vorkommt
* beliebige Vorkommen (keinmal, einmal oder mehrmals)
? optional, der voranstehende Ausdruck kann einmal vorkommen, muss aber nicht
Zeichen, die eine Position bestimmen
^ Zeilenanfang
$ für Zeilenende
Zeichenklassen
. jedes beliebige Zeichen
[0-6] alle Ziffern von 0 bis 6
[egh] e, g oder h
[^a] alle Zeichen außer a
Verknüpfungen
(a|b) a oder b

Literatur

Jeffrey Friedl: Mastering Regular Expressions, O'Reilly 1997 ISBN 1-56592-257-3