Regex (kurz für regulärer Ausdruck) ist eine Zeichenfolge, die ein Suchmuster definiert. Regex wird verwendet, um Zeichenketten zu finden, abzugleichen, zu ersetzen oder zu validieren — von einfachen Wortsuchen bis zu komplexen Textverarbeitungsaufgaben. Alle großen Programmiersprachen enthalten eine eingebaute Regex-Engine, was ihn zu einem der universell einsetzbaren Werkzeuge in der Entwicklung macht.
Reguläre Ausdrücke interaktiv testen?
Regex Tester öffnen →Reguläre Ausdrücke entstammen der formalen Sprachtheorie. Mathematiker Stephen Cole Kleene führte sie in den 1950er Jahren als Notation zur Beschreibung regulärer Sprachen ein. Ken Thompson implementierte Regex im UNIX-Texteditor ed und später in grep (1973). Perl (1987) erweiterte die Syntax erheblich und machte den PCRE-Dialekt (Perl-Compatible Regular Expressions) populär, dem die meisten modernen Sprachen folgen.
Ein regulärer Ausdruck ist ein Muster, das zwischen Trennzeichen geschrieben wird (in JavaScript: /muster/flags). Das Muster kann Literalzeichen, spezielle Metazeichen und Quantoren enthalten.
/* E-Mail-Validierungs-Regex */
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
/* Passt: benutzer@beispiel.de */
/* Passt nicht: kein-email */
katze passt die Zeichenkette "katze"[aeiou] jeden Vokal, [a-z] jeden Kleinbuchstaben, [^0-9] jedes Nicht-Ziffernzeichen^ passt den Anfang einer Zeichenkette, $ das Ende* (0 oder mehr), + (1 oder mehr), ? (0 oder 1), {n} (genau n), {n,m} (zwischen n und m). passt jedes einzelne Zeichen außer Zeilenumbruchkatze|hund passt entweder "katze" oder "hund"(abc) erfassende Gruppe, (?:abc) nicht erfassende Gruppe\ vor einem Metazeichen behandelt es als Literal: \. passt einen Punkt\d (Ziffer), \w (Wortzeichen), \s (Leerzeichen) und ihre Negationen \D, \W, \S^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$https?://[^\s]+\d{4}-\d{2}-\d{2}\+?[\d\s\-\(\)]{7,15}\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b#[0-9a-fA-F]{3,6}g — global — alle Treffer finden, nicht nur den ersteni — Groß-/Kleinschreibung ignorieren — /hallo/i passt "Hallo", "HALLO", "hallo"m — mehrzeilig — ^ und $ passen Zeilenanfang und -endes — dotAll — . passt auch Zeilenumbrüche. * + ? ^ $ { } [ ] | ( ) \ müssen mit \ escaped werden, um als Literale zu gelten*, +) passen so viel wie möglich; ? danach (*?, +?) macht sie faulRegex (kurz für regulärer Ausdruck) ist eine Zeichenfolge, die ein Suchmuster definiert. Es wird verwendet, um Zeichenketten zu finden, abzugleichen, zu ersetzen oder zu validieren. Alle großen Programmiersprachen unterstützen reguläre Ausdrücke.
Regex steht für regulärer Ausdruck (englisch: regular expression). Der Begriff stammt aus der formalen Sprachtheorie, die Mathematiker Stephen Cole Kleene in den 1950er Jahren entwickelte.
Regex wird für Eingabevalidierung (E-Mail, Telefon, Passwort), Suchen und Ersetzen in Texteditoren, Log-Datei-Parsing, URL-Routing und Datenextraktion aus unstrukturiertem Text verwendet.
Die meisten Sprachen unterstützen eine gemeinsame PCRE-basierte Syntax. JavaScript, Python, Java und PHP verwenden alle PCRE-kompatible Engines, aber Flags und einige erweiterte Features können sich unterscheiden.
Der *-Quantor passt null oder mehr Vorkommen. Der +-Quantor passt ein oder mehr Vorkommen. a* passt also auch einen leeren String, während a+ mindestens ein "a" erfordert.
^ hat zwei Bedeutungen. Am Anfang eines Musters ist es ein Anker, der den Anfang der Zeichenkette passt. Innerhalb einer Zeichenklasse [^abc] bedeutet es Negation — passt jedes Zeichen außer den aufgeführten.