Ein regulärer Ausdruck (englisch regular expression, Abkürzung RegExp oder Regex) ist in der theoretischen Informatik eine Zeichenkette, die der Beschreibung von Mengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient.
Neben Implementierungen in vielen Programmiersprachen verarbeiten auch viele Texteditoren reguläre Ausdrücke in der Funktion "Suchen und Ersetzen". Ein einfacher Anwendungsfall von regulären Ausdrücken sind Wildcards.
Reguläre Ausdrücke können als Filterkriterien in der Textsuche verwendet werden, indem der Text mit dem Muster des regulären Ausdrucks abgeglichen wird. Dieser Vorgang wird auch 'Pattern Matching' genannt.
| Metazeichen | Bedeutung | Beispiel |
|---|---|---|
| [ ] | Zeichenmenge | [a-z] |
| . | beliebiges Zeichen | |
| ? + * | Quantoren | \s* |
| { } | Quantor (Anzahl) | {4} {3,} {2,5} {0,4} |
| ( ) | Gruppierung | (abc)+ |
| | | oder-Symbol | (Katz|Maus) |
| \ | Maskierung (hebt gegebenenfalls die Metabedeutung des nächsten Zeichens auf) | \? |
| ^ | Negation (nur am Anfang einer Zeichenmengenangabe) | [^a-z] |
| Metazeichen | Bedeutung | Beispiel |
|---|---|---|
| + | 1 oder mehrmal | \d+\. Jh\. |
| * | 0 oder mehrmal | A*B*C* |
| ? | 0 oder einmal gleichzeitig: Begrenzer der vorherigen Quantoren | plurals? |
| {4} | genau vier mal | \s\d{4}\s |
| Zeichenmenge | Bedeutung | alternativ zu |
|---|---|---|
| \d | digit | [0-9] |
| \D | no digit | [^\d] |
| \w | word character | [a-zA-Z0-9_] |
| \s | whitespace | u.a. Leerzeichen, Tabstopp (\t), Zeilenumbruch (\n, \r) |
| \p{L} | Letter (Unicode-Zeichenbereich) | auch Umlaute u.ä. |
| \p{P} | Punctuation (Unicode-Zeichenbereich) | u.a. ,;.:-?! |
| Ausdruck | Bedeutung | Beispiel |
|---|---|---|
| \b | Wortanfang oder -ende | \b\w{4}\b |
| ^ | Zeilen- (Absatz-) bzw. Stringanfang | |
| $ | Zeilen- (Absatz-) bzw. Stringende | |
| (?=Ausdruck) | positive look-ahead assertion | Ausdruck(?=Ausdruck) |
| (?!Ausdruck) | negative look-ahead assertion | Ausdruck(?!Ausdruck) |
| (?<=Ausdruck) | positive look-behind assertion | (?<=Ausdruck)Ausdruck |
| (?<!Ausdruck) | negative look-behind assertion | (?<!Ausdruck)Ausdruck |
| \n | n-te Gruppe | \b(\w)(\w)\2\1\b |
| Ausdruck | Ersetze |
|---|---|
| ([\p{L}\d\p{P}])\s*\n+\s+([\p{L}\d\p{P}&\(]) | $1 $2 |
| Ausdruck | Ersetze |
|---|---|
| "\s+(/?)> | "$1> |
