Kostenloses Tool

    Regex-Tester

    Testen, debuggen und visualisieren Sie reguläre Ausdrücke mit Echtzeit-Abgleich.

    Regulärer Ausdruck

    //g
    Flaggen:
    Voreinstellungen:

    Testzeichenfolge

    Was sind reguläre Ausdrücke?

    Reguläre Ausdrücke (Regex) sind Muster, mit denen Zeichenkombinationen in Zeichenfolgen abgeglichen werden. Sie werden in nahezu jeder Programmiersprache unterstützt und sind für die Textverarbeitung, die Eingabevalidierung, das Suchen und Ersetzen sowie die Auswertung von Protokolldaten unverzichtbar.

    JavaScript-Regex-Flags

    • g — Global: Alle Übereinstimmungen suchen, nicht nur die erste
    • i — Groß-/Kleinschreibung wird bei der Suche nicht berücksichtigt
    • m — Mehrzeilig: ^ und $ werden an Zeilengrenzen abgeglichen
    • s — Dotall: . entspricht Zeilenumbruchzeichen

    Häufige Anwendungsfälle

    • Überprüfung von E-Mail-Adressen, Telefonnummern und URLs
    • Extrahieren von Daten aus Protokolldateien und strukturiertem Text
    • Suchen und Ersetzen in Code-Editoren und IDEs
    • Erstellung von Eingabemasken und Formularvalidatoren
    • Parsen und Transformieren von CSV-, JSON- und XML-Daten

    Wann sollte man auf Regex zurückgreifen?

    Reguläre Ausdrücke eignen sich hervorragend für kurze, klar definierte Muster, bei denen Text abgeglichen, extrahiert oder ersetzt werden muss – beispielsweise beim Parsen von Protokolleinträgen, bei URL-Routing-Regeln, bei der Validierung von Formularfeldern sowie beim Suchen und Ersetzen innerhalb eines Editors. Sie werden jedoch zum Problem, wenn es sich bei der Eingabe tatsächlich um eine strukturierte Sprache handelt: HTML, JSON, Quellcode oder alles, was verschachtelte Trennzeichen enthält. Verwenden Sie in solchen Fällen einen echten Parser; der RegEx, den Sie heute schreiben, wird beim nächsten Randfall stillschweigend versagen.

    Regex Häufig gestellte Fragen

    Schnelle Antworten auf die Fragen zu Regex, auf die man tatsächlich stößt, wenn man Muster von Hand schreibt.

    Welche Variante von Regex verwendet dieser Tester?
    ECMAScript/JavaScript-Regex (die in Ihrem Browser integrierte Engine). Muster, die hier funktionieren, funktionieren auch in `String.prototype.match`, `RegEx.test` und den meisten modernen JS-basierten Lintern oder Editor-Erweiterungen. Muster, die für PCRE (PHP, Perl), Pythons `re` oder Gos `regexp` geschrieben wurden, können sich anders verhalten – Lookbehinds, atomare Gruppen und die Syntax für benannte Gruppen sind häufige Abweichungspunkte.
    Wie kann ich mein Muster so gestalten, dass es nicht zwischen Groß- und Kleinschreibung unterscheidet?
    Aktivieren Sie das Flag `i` (Groß-/Kleinschreibung ignorieren). Dadurch wird die Groß-/Kleinschreibung im gesamten Muster ignoriert, sodass `/Hello/i` mit `hello`, `HELLO` und `HeLLo` übereinstimmt. Wenn nur ein Teil des Musters groß-/kleinschreibungsunabhängig sein soll, müssen Sie die Zeichen explizit aufzählen – JavaScript-Regex unterstützt keine Inline-Modifikatoren wie `(?i:...)`.
    Warum findet mein Regex keine Übereinstimmungen über mehrere Zeilen hinweg?
    Zwei Flags beeinflussen das Verhalten bei mehrzeiligen Eingaben. Das Flag `m` (Multiline) bewirkt, dass `^` und `$` nun an Zeilengrenzen statt nur am Anfang bzw. Ende der gesamten Zeichenkette übereinstimmen – nützlich für die zeilenweise Validierung. Unabhängig davon sorgt das Flag `s` (dotAll) dafür, dass `.` auch Zeilenumbrüche berücksichtigt – ohne dieses Flag endet `.*` bereits beim ersten `\n`. In den meisten Anwendungsfällen, in denen mehrere Zeilen berücksichtigt werden müssen, sind beide Flags erforderlich.
    Was ist der Unterschied zwischen gierigen und faulen Quantoren?
    Standardmäßig sind Quantifizierer wie `*`, `+` und `{n,m}` „gierig“ – sie verbrauchen so viel Eingabe wie möglich, solange die Übereinstimmung insgesamt noch erfolgreich ist. Durch Anhängen von `?` werden sie „faul“: Sie verbrauchen nur das Minimum und überlassen es den nachfolgenden Teilen des Musters, den Rest zu übernehmen. Das „greedy“ Muster `<.+>` im Vergleich zu `` findet Übereinstimmungen mit der gesamten Zeichenkette; das „lazy“ Muster `<.+?>` findet nur Übereinstimmungen mit ``. „Lazy“-Quantoren sind in der Regel die richtige Wahl, wenn Sie Felder zwischen Trennzeichen extrahieren möchten.
    Wie kann ich Sonderzeichen in meinem Muster maskieren?
    Warum liefert mein Regex mehr (oder weniger) Treffer als erwartet?