Wie Sie reguläre Ausdrücke online testen

· 5 Min. Lesezeit

Reguläre Ausdrücke sind eines der mächtigsten Werkzeuge in der Programmierung und eines der frustrierendsten zum richtigen Hinbekommen. Ein Regex-Tester ermöglicht es Ihnen, Muster interaktiv zu erstellen und zu debuggen, anstatt Ihren Code auszuführen, die Ausgabe zu überprüfen und zu raten, was schiefgegangen ist. Die Feedback-Schleife sinkt von Minuten pro Iteration auf Sekunden.

Warum einen Regex-Tester verwenden

Regex in Ihrem Code-Editor zu schreiben bedeutet, dass Sie Fehler nur zur Laufzeit sehen. Ein Tester zeigt Ihnen:

So testen Sie Regex online

  1. Geben Sie Ihr Muster ein: Geben Sie den Regex im Musterfeld ein. Schalten Sie Flags (g für global, i für Groß-/Kleinschreibung unabhängig, m für mehrzeilig) nach Bedarf um.
  2. Fügen Sie Ihren Testtext ein: Geben Sie den Text ein, gegen den Sie abgleichen möchten. Übereinstimmungen werden in Echtzeit hervorgehoben.
  3. Ergebnisse anzeigen: Sehen Sie alle Übereinstimmungen mit unten aufgelisteten Capture-Gruppen. Verwenden Sie das Feld «Ersetzen mit», um Ersetzungen zu testen.

Eine kurze Geschichte der regulären Ausdrücke

Reguläre Ausdrücke wurden 1951 vom Mathematiker Stephen Kleene als Notation für «reguläre Ereignisse» in seiner Arbeit zu neuronalen Netzwerken formalisiert. Sie sprangen von der Theorie zur praktischen Verwendung, als Ken Thompson sie 1968 im QED-Texteditor bei Bell Labs implementierte, dann im ed-Editor (1969) und schließlich im grep-Dienstprogramm (1973), dessen Name von «global / regular expression / print» stammt.

Perl, eingeführt von Larry Wall im Jahr 1987, erweiterte die Regex-Syntax erheblich: nicht-gierige Quantifizierer, Lookahead, benannte Gruppen, Zeichenklassen-Abkürzungen wie \d und \w. Die Perl-Compatible Regular Expressions (PCRE)-Bibliothek, veröffentlicht 1997, wurde zum De-facto-Standard für die meisten modernen Sprachen.

Heute hat praktisch jede Programmiersprache eingebaute Regex-Unterstützung, obwohl die Syntax leicht variiert. Die JavaScript-Engine (V8 in Chrome, SpiderMonkey in Firefox) ist stark optimiert und treibt die meisten Online-Regex-Tester an. PHP, Python (re-Modul) und Java (java.util.regex) verwenden eng verwandte, aber nicht identische Syntax. Zu wissen, für welche Variante Sie schreiben, ist für erweiterte Funktionen wichtig.

Gängige Regex-Muster, die es wert sind, gekannt zu werden

E-Mail-Adresse (grundlegend):

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

URL:

https?://[^\s]+

Telefonnummer (US):

\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}

Datum (JJJJ-MM-TT):

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])

IP-Adresse (IPv4):

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

Hex-Farbcode:

#(?:[0-9a-fA-F]{3}){1,2}\b

Slug (URL-sicherer Bezeichner):

^[a-z0-9]+(?:-[a-z0-9]+)*$

String mit gekürzten Leerzeichen:

^\s*(.*?)\s*$

Geschmacksunterschiede zwischen Sprachen

Die Regex-Syntax ist größtenteils portabel, hat aber Tücken:

Wenn Sie einen Regex in einem Tester schreiben (fast immer JavaScript-Geschmack), bestätigen Sie, dass die Zielsprache alle von Ihnen verwendeten Funktionen unterstützt, bevor Sie sich darauf festlegen.

Häufige Fallstricke

Wann KEIN Regex verwenden

Regex ist das falsche Werkzeug für einige Aufgaben:

Wenn Sie einen Regex über 100 Zeichen mit mehreren verschachtelten Gruppen schreiben, lösen Sie wahrscheinlich das falsche Problem.

Tipps zum Schreiben besserer Regex

Datenschutz und vertrauliche Testdaten

Der Regex-Tester läuft vollständig in Ihrem Browser unter Verwendung der nativen RegExp-Engine von JavaScript. Das Muster, das Sie schreiben, der Testtext, den Sie einfügen, und die Übereinstimmungen, die Sie sehen, bleiben alle auf Ihrem Gerät. Nichts wird hochgeladen, protokolliert oder von einem Server analysiert.

Das ist wichtig, weil Regex-Testtext oft sensible Informationen enthält: Produktions-Log-Beispiele (mit echten Benutzer-IDs, IP-Adressen, Sitzungs-Tokens), aus einem CRM gezogene E-Mail-Listen, ungewöhnlich formatierte Kundendaten. Cloud-Regex-Tester leiten all dies durch ihre Server, manchmal speichern sie es zu «Verbesserungs»-Zwecken. Ein browserbasierter Tester hat null Exposition für irgendetwas davon.

Häufig gestellte Fragen

Funktioniert mein Regex in anderen Programmiersprachen?

Der Großteil der Regex-Syntax ist in JavaScript, Python, Java, PHP und anderen gleich. Grundlegende Muster (Zeichenklassen, Quantoren, Anker) funktionieren überall. Einige fortgeschrittene Funktionen wie Lookbehinds oder benannte Gruppen unterscheiden sich zwischen Sprachen.

Werden meine Testdaten an einen Server gesendet?

Nein. Die gesamte Regex-Auswertung erfolgt lokal in Ihrem Browser über die native RegExp-Engine von JavaScript. Nichts wird irgendwohin gesendet.

Kann ich Ersetzungen testen?

Ja. Geben Sie ein Ersetzungsmuster ein (mit $1, $2 usw. für Capture-Gruppen), um das Ergebnis einer Suchen-und-Ersetzen-Operation in Echtzeit zu sehen.

Funktioniert das offline?

Ja. Sobald die Seite geladen ist, funktioniert das Tool vollständig in Ihrem Browser ohne Internetverbindung.