tigtools

Regex-Tester

Geben Sie ein Muster und Text ein, um alle hervorgehobenen Treffer einschließlich ihrer Positionen und Erfassungsgruppen anzuzeigen. Verwendet die JavaScript-Regex-Engine Ihres Browsers.

Läuft in Ihrem Browser Keine Anmeldung erforderlich

Flags

Verwenden Sie $1, $2 … für nummerierte Gruppen, $<name> für benannte Gruppen, $& für den gesamten Treffer und $$ für ein Dollarzeichen.

Anleitung

  1. Geben Sie im Feld „Muster“ einen regulären Ausdruck ohne die umschließenden Schrägstriche ein.
  2. Aktivieren Sie die gewünschten Flags. Mit g (global) werden alle Treffer statt nur des ersten gefunden.
  3. Fügen Sie den zu durchsuchenden Text ein. Treffer werden hervorgehoben und jeweils mit ihrem Index und den Erfassungsgruppen aufgelistet.
  4. Geben Sie optional eine Ersetzung wie $2-$1 ein, um das Ergebnis von String.replace in der Vorschau anzuzeigen.

So funktioniert es

Der Tester führt Ihr Muster mit dem integrierten RegExp-Objekt des Browsers aus. Die Ergebnisse entsprechen daher genau dem, was JavaScript-Code (ECMAScript) in diesem Browser liefern würde. Andere Sprachen verwenden andere Regex-Varianten: PCRE (PHP), Pythons re-Modul, Java und .NET unterstützen Funktionen, die JavaScript nicht bietet, etwa possessive Quantifizierer (a++), atomare Gruppen ((?>…)), Inline-Modifikatoren wie (?i) und Rekursion. Außerdem gibt es Unterschiede bei Details wie den Ankern \A und \Z. Testen Sie ein Muster in der jeweiligen Sprache, bevor Sie sich darauf verlassen. Lookbehinds ((?<=…)), benannte Gruppen ((?<name>…)) und Unicode-Property-Escapes (\p{L} mit dem u-Flag) funktionieren in allen aktuellen Browsern.

Ohne das g- oder y-Flag wird wie bei RegExp.exec nur der erste Treffer gefunden. Treffer der Länge null, etwa bei ^ oder \b, werden aufgelistet, aber nicht hervorgehoben. Danach wird die Suche um ein Zeichen weitergeführt (mit dem u-Flag um einen Codepunkt), wie bei String.matchAll. Erfassungsgruppen werden nach Nummer und, falls definiert, nach Namen angezeigt. Eine Gruppe, die nicht am Treffer beteiligt war, wird als ohne Wert gekennzeichnet. Das ist etwas anderes als ein leerer Treffer.

Manche Muster, etwa (a+)+$ bei einer langen Zeile ohne Treffer, benötigen exponentiell viel Zeit, bis sie scheitern (katastrophales Backtracking). Um das Risiko zu verringern, beginnt die Suche kurz nachdem Sie mit der Eingabe aufgehört haben. Außerdem werden nur die ersten 100,000 Zeichen des Textes durchsucht und höchstens 1,000 Treffer erfasst. Ein problematisches Muster kann den Tab trotzdem eine Weile blockieren. Vereinfachen Sie in diesem Fall das Muster oder kürzen Sie den Text.

Beispiele

Datumsangaben extrahieren

Das Muster (\d{4})-(\d{2})-(\d{2}) findet mit aktiviertem g-Flag zwei Treffer im Text „Due 2026-03-15, paid 2026-04-02“. Gruppe 1 enthält das Jahr. Die Ersetzung $3.$2.$1 wandelt den Text in „Due 15.03.2026, paid 02.04.2026“ um.

Benannte Gruppen für besser lesbaren Code

(?<key>\w+)=(?<value>[^&]*) listet für jede Zuordnung in der Query-String-Zeichenfolge a=1&b=two die Werte von key und value auf. Das entspricht den Rückgabewerten von match.groups.key und match.groups.value in JavaScript.

Groß-/Kleinschreibung ignorieren und mehrere Zeilen durchsuchen

^error:.* findet mit den Flags g, i und m jede Logzeile, die mit Error:, ERROR: oder error: beginnt, da ^ mit m am Anfang jeder Zeile greift.

Häufig gestellte Fragen

Funktioniert mein Regex in Python, PHP oder Java genauso?

Nicht unbedingt. Dieses Tool verwendet die JavaScript-Engine. Die grundlegende Syntax ist ähnlich, aber Funktionen wie possessive Quantifizierer, atomare Gruppen, Inline-Flags wie (?i) und einige Escape-Sequenzen gibt es nur in anderen Varianten. Auch manches Verhalten unterscheidet sich. Testen Sie das Muster immer in der Zielsprache.

Warum wird nur ein Treffer gefunden?

Das g-Flag (global) ist deaktiviert. Ohne dieses Flag gibt JavaScript nur den ersten Treffer zurück. Aktivieren Sie g, um alle Treffer zu finden.

Muss ich das Muster in Schrägstriche setzen?

Nein. Geben Sie nur das Muster ein, zum Beispiel \d+ statt /\d+/g, und wählen Sie die Flags über die Kontrollkästchen aus. Unter den Ergebnissen wird die JavaScript-Literal-Schreibweise angezeigt, die Sie in den Code kopieren können.

Warum wurde die Seite mit meinem Muster langsam?

Verschachtelte Quantifizierer wie (a+)+ oder (.*)* können die Engine dazu zwingen, bei einem ausbleibenden Treffer exponentiell viele Möglichkeiten auszuprobieren. Präzisieren Sie das Muster, indem Sie zum Beispiel .* durch [^,]* ersetzen, oder verwenden Sie Anker. Um die Auswirkungen zu verringern, begrenzt der Tester den Text auf 100,000 Zeichen.

Datenschutz

Ihr Muster und Ihr Text werden ausschließlich im Browser von dessen JavaScript-Engine verarbeitet. Es werden keine Daten hochgeladen, gespeichert oder in Analytics einbezogen.