Regex-Tester

/ /

Tippen Sie einen regulären Ausdruck, fügen Sie den Testtext ein, und der Tester führt das Muster aus und listet jede gefundene Übereinstimmung. Jedes Ergebnis zeigt, wo die Übereinstimmung beginnt, und den Inhalt jeder Erfassungsgruppe, damit Sie genau sehen, was das Muster erfasst hat. Schalten Sie die Flags für Groß-/Kleinschreibung, Mehrzeilig und Dotall, um das Verhalten des Musters zu ändern.

So testen Sie eine Regex

  1. 1

    Muster eingeben

    Tippen Sie den Ausdruck ohne Trennzeichen; der Tester fasst ihn für Sie in `/ /` ein. Ein ungültiges Muster zeigt eine klare Fehlermeldung, statt still zu scheitern.

  2. 2

    Flags wählen

    Aktivieren Sie `i` (Groß-/Kleinschreibung ignorieren), `m` (mehrzeilig) oder `s` (Dotall), um so zu erkennen, wie Sie es brauchen.

  3. 3

    Testtext einfügen

    Fügen Sie den zu durchsuchenden Text ein. Der Tester liest ihn vollständig und findet jede Übereinstimmung, nicht nur die erste.

  4. 4

    Übereinstimmungen prüfen

    Jede Übereinstimmung zeigt ihre Position (Offset) im Text, die vollständige Übereinstimmung und jede nummerierte Erfassungsgruppe.

Was der Tester Ihnen zeigt

Ein Muster im Kopf oder mit einem schnellen grep auszuführen, sagt Ihnen, ob etwas passt. Der Tester zeigt zusätzlich:

  • Jede Übereinstimmung mit ihrer Position. Er durchsucht immer den gesamten Text und meldet jede Übereinstimmung mit dem Zeichen-Offset, an dem sie beginnt.
  • Welche Gruppe was erfasst hat. Jede Übereinstimmung wird in ihre vollständige Übereinstimmung und die nummerierten Erfassungsgruppen zerlegt, damit Sie bestätigen können, dass ein (...) den erwarteten Teil erfasst hat.
  • Was die Flags ändern. Aktivieren Sie i, m oder s und testen Sie erneut, um zu sehen, wie Groß-/Kleinschreibung, Mehrzeilig oder Dotall das Ergebnis ändern.

Die Flags, einfach erklärt

Flag Name Was es ändert
i Groß-/Kleinschreibung ignorieren A passt auch auf a, und umgekehrt
m Mehrzeilig ^ und $ passen an Anfang und Ende jeder Zeile, nicht nur des ganzen Textes
s Dotall . passt auch auf Zeilenumbrüche

Die Suche ist immer global: Der Tester liefert jede Übereinstimmung im Text, es gibt also kein separates „global“-Flag. Muster laufen auf der PCRE-Engine mit Unicode-Unterstützung, sodass sich Klassen wie \w und \d bei internationalem Text konsistent verhalten.

Häufige Regex-Probleme, die dies aufdeckt

Symptom Übliche Ursache
Eine einzige riesige Übereinstimmung, die alles umfasst .* ist gierig; verwenden Sie .*? oder eine negierte Klasse wie [^"]*
^ oder $ passt nur einmal Das m-Flag fehlt bei mehrzeiligem Text
. hält an Zeilenumbrüchen an Das s-Flag fehlt
Erfassungsgruppen in unerwarteter Reihenfolge Verschachtelte ( verschieben die Gruppennummern; zählen Sie sie von links nach rechts
Ein Muster, das langsam läuft Verschachtelte * oder + über überlappende Alternativen verursachen starkes Backtracking

Tipps für schnellere, sicherere Muster

  • Verankern Sie mit ^, wenn die Übereinstimmung am Anfang beginnt, damit die Engine nicht die ganze Zeichenkette durchsucht.
  • Bevorzugen Sie eine Zeichenklasse ([abc]) gegenüber Alternation (a|b|c); Klassen sind in jeder großen Engine schneller.
  • Ersetzen Sie ein gieriges .* durch eine negierte Klasse wie [^"]*, wenn Sie das Endezeichen kennen, dann gibt es kein Backtracking.

Häufig gestellte Fragen

Er führt Ihr Muster mit PCRE aus, der in PHP eingebauten Engine, mit aktiviertem Unicode-Modus. PCRE-spezifische Syntax wie \d, \b und Lookarounds funktioniert wie erwartet. Wenn Sie das Muster in JavaScript, Python oder einer anderen Sprache einsetzen, prüfen Sie vorher die kleinen Syntaxunterschiede.

Jede. Der Tester durchsucht immer den gesamten Text, es gibt also kein separates „global“-Flag. Jede Übereinstimmung wird mit ihrer Position im Text gelistet.

Ja. Jede Übereinstimmung wird in die vollständige Übereinstimmung und jede nummerierte Erfassungsgruppe zerlegt, damit Sie bestätigen können, welchen Teil des Textes jedes (...) erfasst hat.

i macht die Suche unabhängig von Groß-/Kleinschreibung, m lässt ^ und $ an jeder Zeilengrenze passen, und s lässt . auch Zeilenumbrüche erfassen. Aktivieren oder deaktivieren Sie sie und testen Sie erneut, um die Ergebnisse zu vergleichen.

Der Tester zeigt eine klare Fehlermeldung, die das Problem beschreibt, etwa eine nicht geschlossene Klammer oder eine nicht beendete Gruppe, statt stillschweigend keine Übereinstimmungen zu liefern.

Verwandte Tools

Tool in anderen Sprachen verfügbar