Ein Regulärer Ausdruck (engl. regular expression, Abk. RegExp oder Regex) ist eine Zeichenkette, die
der Beschreibung von Mengen beziehungsweise Untermengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient.
Reguläre Ausdrücke finden vor allem in der Softwareentwicklung Verwendung; für fast alle Programmiersprachen existieren
Implementierungen.
Reguläre Ausdrücke stellen erstens eine Art Filterkriterium für Texte dar, indem der jeweilige reguläre
Ausdruck in Form eines Musters mit dem Text abgeglichen wird. So ist es beispielsweise möglich, alle Wörter,
die mit S beginnen und mit D enden, zu suchen, ohne die zwischenliegenden Buchstaben explizit vorgeben zu müssen.
Ein weiteres Beispiel für den Einsatz als Filter ist die Möglichkeit, komplizierte Textersetzungen durchzuführen,
indem man die zu suchenden Zeichenketten durch reguläre Ausdrücke beschreibt.
Zweitens lassen sich aus regulären Ausdrücken, als eine Art Schablone, auch Mengen von Wörtern erzeugen, ohne
jedes Wort einzeln angeben zu müssen. So lässt sich beispielsweise ein Ausdruck angeben, der alle denkbaren
Zeichenkombinationen (Wörter) erzeugt, die mit S beginnen und mit D enden. [vgl.
|
Besondere Zeichen |
z |
Ein beliebiges Zeichen z |
\\ |
Der Gegenschräger (Backslash) |
\0nnn |
Zeichen mit oktaldezimalem Wert 0nnn |
\xnnn |
Zeichen mit hexadezimalem Wert 0nnn |
\t |
Tabulator |
\n |
Zeilenumbruch (Newline) |
\r |
Wagenrücklauf (Carriage Return) |
\f |
Zeichenvorschub (Form Feed) |
\a |
Piepton (Beep) |
\e |
Escape |
\cz |
Kontrollzeichen korrespondierend zu z |
|
Vordefinierte Zeichenklassen |
. |
Jedes Zeichen (Einstellbar ob auch Umbrüche enthalten sind) |
\d |
Beliebiges Ziffernzeichen; identisch mit [0-9] |
\D |
Alle Zeichen außer Ziffern; identisch mit [^0-9] |
\s |
Leerraumzeichen (White Space); identisch mit [ \t\n\x0B\f\r] |
\S |
Alle Zeichen außer Leerraum; identisch mit [^\s] |
\w |
Jedes alphanummerisches Zeichen; identisch mit [a-zA-Z_0-9] |
\W |
Alle Zeichen außer Jedes alphanummerische; identisch mit [^\w] |
|
Eigene Zeichenklassen |
[abc] |
a, b oder c, (Einfache Klasse) |
[^abc] |
Alles außer a, b oder c (Negierung) |
[a-z] |
a bis z
oder A bis Z (einfacher Zeichenbereich) |
[a-m[n-p]] |
a bis m
oder n bis p; identisch mit [a-dm-p] (Vereinigung) |
[a-z&&[egf]] |
e, g oder f (Untermenge) |
[a-z&&[^bc]] |
a bis z,
ohne b und ohne c (Zeichenbereich mit Auschluss) |
|
Grenzbezüge |
^ |
Start einer Zeile oder Beginn des Textes |
$ |
Zeilenende oder Ende des Textes |
\b |
Wortgrenze |
\B |
Alles außer eine Wortgrenze |
\A |
Beginn des Textes |
\G |
The end of the previous match |
\Z |
Ende des Textes oder des Textabschlusses |
\z |
Ende des Textes |
|
Quantitäten |
X? |
X genau einmal oder überhaupt nicht |
X* |
X 0 Mal bis viele |
X+ |
X 1 Mal bis viele |
X{n} |
X genau n Mal |
X{n,} |
X mindestens n Mal bis viele |
X{n,m} |
X n bis m Mal |
|
Quantitäten (nicht gefräßig, so wenig wie möglich) |
X*? |
X 0 Mal bis so wenig wie möglich |
X+? |
X 1 mal bis so wenig wie möglich |
X{n,}? |
X mindestens n Mal bis so wenig wie möglich |
X{n,m}? |
X mindestens n Mal bis höchsten m Mal |
|
Quantitäten (gefräßig, so viel wie möglich) |
X*+ |
X 0 Mal bis so viel wie möglich |
X++ |
X 1 Mal bis so viel wie möglich |
X{n,}+ |
X mindestens n Mal bis so viel wie möglich |
X{n,m}+ |
X mindestens n und maximal m Mal |
|
Aneinanderreihung und Gruppierung |
XY |
X gefolgt von Y |
X|Y |
Entweder X oder Y |
(X) |
X als Gruppe mit späterer Bezugsmöglichkeit $n |
(?:X) |
X als Gruppe ohne späterer Bezugsmöglichkeit |