Regex-Tester

Gib ein Muster für einen regulären Ausdruck und eine Teststring ein, um Übereinstimmungen hervorzuheben und die Werte der Erfassungsgruppen aufzulisten. Unterstützt die Flags g/i/m/s/u mit dem nativen RegExp von JavaScript.

Häufig genutzte Regex-Muster

Verwendung Muster Beschreibung
E-Mail-Adresse ^[\w.+-]+@[\w-]+\.[\w.-]+$ Passt auf ein vereinfachtes E-Mail-Format aus Benutzername und Domain, getrennt durch @ (nicht vollständig RFC-konform).
Telefonnummer (Deutschland) ^0\d{2,5}[\s/-]?\d{3,10}$ Passt auf deutsche Fest- oder Mobilfunknummern, die mit 0 beginnen, mit optionalem Trennzeichen zwischen Vorwahl und Nummer.
URL https?:\/\/[\w.-]+(?:\/[\w\-./?%&=]*)? Extrahiert URL-Strings, die mit http:// oder https:// beginnen, einschließlich Pfad und Query-Parametern.
Postleitzahl (PLZ) ^\d{5}$ Passt auf eine fünfstellige deutsche Postleitzahl (PLZ).
Hex-Farbcode ^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$ Passt auf CSS-Hex-Farben im vollen Format #RRGGBB oder in der Kurzform #RGB.
Nur Ziffern ^[0-9]+$ Prüft, ob der gesamte String nur aus Ziffern (0-9) besteht.

Tipps

  • Das /Flags-Feld neben dem Musterfeld zeigt auf einen Blick, welche Flag-Kombination gerade aktiv ist.
  • Nur die in () eingeschlossenen Teile zählen als Erfassungsgruppen. Verwende eine nicht erfassende Gruppe (?:...), wenn du nur eine Bedingung gruppieren möchtest, ohne die Gruppenliste unnötig zu füllen.
  • Ohne das g-Flag wird nur die erste Übereinstimmung gefunden. Aktiviere es, wenn du alle Vorkommen im Text zählen möchtest.
  • Die Schaltfläche "Beispiel einfügen" lädt ein Beispiel zur E-Mail-Extraktion – ein guter Ausgangspunkt, um das Verhalten von Erfassungsgruppen zu verstehen.
  • Die gesamte Verarbeitung findet vollständig in deinem Browser statt – das eingegebene Muster und der Teststring werden nie an einen Server gesendet.

Häufig gestellte Fragen

Ohne das g-Flag (global) findet der reguläre Ausdruck nur das erste Vorkommen im String, alle weiteren werden ignoriert. Aktiviere das g-Flag, wenn du alle Übereinstimmungen finden möchtest.

Die Grundsyntax ([abc], \d, +, * usw.) ist größtenteils identisch, aber die Syntax benannter Gruppen, die Unterstützung von Lookahead/Lookbehind und die verfügbaren Flags unterscheiden sich zwischen den Sprachen im Detail. Dieses Tool folgt der RegExp-Spezifikation von JavaScript und garantiert daher kein identisches Verhalten in anderen Sprachen.

Nein. Die gesamte Verarbeitung erfolgt im JavaScript deines Browsers, und nichts von dem, was du eingibst, wird an die Server von toolbase.cc gesendet oder dort gespeichert.

Diese erscheint, wenn der RegExp-Konstruktor von JavaScript einen Syntaxfehler feststellt – etwa eine nicht geschlossene Klammer, einen Quantor (*, +, ?) ohne vorangehendes Element oder eine ungültige Zeichenklasse. Die Fehlermeldung gibt meist einen Hinweis, also prüfe die Klammerbalance und das Escaping von Sonderzeichen (wie \. oder \().
ツールくん

Übrigens – Was in einer Regex-Engine im Inneren passiert

Reguläre Ausdrücke gehen auf die Theorie der "regulären Sprachen" zurück, die der Mathematiker Stephen Kleene in den 1950er-Jahren aufstellte. Frühe Unix-Werkzeuge wie der Texteditor ed und der Befehl grep (kurz für "globally search a Regular Expression and Print") übernahmen diese Theorie als praktische Implementierung, was die schnelle Verbreitung des Konzepts in Textverarbeitungswerkzeugen erklärt. Der Name "grep" selbst stammt symbolträchtig von einer Regex-Operation.

Die RegExp-Engine von JavaScript führt den Abgleich intern mit einer Strategie namens Backtracking durch: Sie probiert jedes Element des Musters der Reihe nach und geht bei einem späteren Fehlschlag einen Schritt zurück, um eine Alternative zu versuchen. Diese Flexibilität hat einen Nachteil: Muster wie (a+)+b in Kombination mit einem langen, nicht passenden String können die Anzahl der Versuche exponentiell wachsen lassen – ein Phänomen namens "katastrophales Backtracking", das einen Browser oder Server zum Einfrieren bringen kann. Teste komplexe Muster deshalb immer mit verschiedenen Eingaben, bevor du sie im Produktivbetrieb einsetzt.

Ein Regex-Objekt mit dem globalen (g) Flag speichert intern einen Cursor namens lastIndex, und jeder Aufruf von exec() setzt die Suche ab dieser Position fort. Die Wiederverwendung desselben Regex-Objekts für nicht zusammenhängende Suchen kann diesen Cursor in einem unerwarteten Zustand hinterlassen. Deshalb erzeugt dieses Tool jedes Mal eine neue RegExp-Instanz, um zu verhindern, dass ein solcher Restzustand übernommen wird.

Benannte Erfassungsgruppen ((?<name>...)) wurden in ECMAScript 2018 eingeführt und sind ein relativ neues Feature. Eine Gruppe über ihren Namen statt über ihre Nummer anzusprechen, verbessert die Lesbarkeit komplexer Muster erheblich – besonders nützlich beim Parsen von Datumsangaben, wo es wichtig ist zu wissen, wofür jede Gruppe steht.

→ Alle Wissenstexte ansehen