Regex ist die Kurzform von regulärer Ausdruck und bezeichnet ein Suchmuster für Text: eine knappe Schreibweise dafür, welche Zeichenfolgen gemeint sind.
- Regex
Eine Schreibweise, mit der sich Muster in Text beschreiben lassen, um sie zu finden, zu prüfen oder zu ersetzen.
Beispiel: „Eine Regex prüft, ob die Eingabe überhaupt wie eine Postleitzahl aussieht.“Auch: regulärer Ausdruck, Regular Expression.
Herkunft: Der Begriff stammt aus der theoretischen Informatik der fünfziger Jahre. Die heute verbreitete Schreibweise prägte Perl; viele Umsetzungen heißen deshalb perlkompatibel.
Die Bausteine
Zeichenklassen sagen, welche Zeichen an einer Stelle stehen dürfen. Quantifizierer sagen, wie oft. Anker binden das Muster an Anfang oder Ende. Gruppen fassen Teile zusammen, damit sich ein Quantifizierer darauf bezieht oder der Treffer später weiterverwendet werden kann.
Mehr braucht es für die allermeisten Fälle nicht. Was reguläre Ausdrücke schwer lesbar macht, ist weniger ihre Vielfalt als ihre Knappheit: Jedes Zeichen trägt Bedeutung.
const muster = /^([a-z0-9._%+-]+)@([a-z0-9.-]+)\.([a-z]{2,})$/;
const treffer = "anna.mueller@homepage-helden.de".match(muster);
treffer[1]; // "anna.mueller" Gruppe 1
treffer[2]; // "homepage-helden" Gruppe 2
treffer[3]; // "de" Gruppe 3
// ohne Treffer liefert match null, das gehört geprüft
if (treffer === null) { /* keine gültige Form */ }Zum Ausprobieren eignet sich RegExr: Dort lässt sich ein Muster gegen eigenen Text halten, Treffer werden beim Tippen hervorgehoben, die Gruppen einzeln aufgelistet, und eine Erklärfunktion übersetzt den Ausdruck in Worte. Unterstützt werden die Spielarten von JavaScript und PHP.
Wo sie im Alltag vorkommen
In der Suche jedes Code-Editors, in Weiterleitungsregeln des Webservers, in der Prüfung von Formulareingaben und überall dort, wo aus unsauberem Text Struktur gewonnen werden muss.
Für Weiterleitungen bei einem Relaunch sind sie das wichtigste Werkzeug: Eine Regel mit Muster ersetzt hundert einzelne Einträge, wenn sich die Adressen nach einem erkennbaren Schema geändert haben.
Wofür sie nicht taugen
Für verschachtelte Strukturen. HTML mit einer Regex zu zerlegen, ist der Klassiker unter den schlechten Ideen: Ein Dokument kann beliebig tief verschachtelt sein, ein Muster kann das nicht abbilden. Dafür gibt es Parser.
Auch bei E-Mail-Adressen führt zu großer Ehrgeiz in die Irre. Ein Muster, das die Norm vollständig abbildet und etwa nur die tatsächlich vergebenen Domainendungen zulässt, ist seitenlang; in der Praxis prüft man grob auf die Form und verschickt dann eine Bestätigungsmail.