Kostenloses Tool

    RegEx Prüfer

    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 Zeichenfolgen in Textzeichenfolgen abgeglichen werden. Sie werden in nahezu jeder Programmiersprache unterstützt und sind für die Textverarbeitung, Eingabevalidierung, das Suchen und Ersetzen sowie die Auswertung von Protokollen unverzichtbar.

    JavaScript-Regex-Flags

    • g – Global: alle Treffer finden, nicht nur den ersten
    • i – Groß-/Kleinschreibung ignorieren
    • m – Mehrzeilig: ^ und $ stimmen mit Zeilenanfang/-ende überein
    • s – Dotall: . stimmt auch mit Zeilenumbrüchen überein

    Häufige Anwendungsfälle

    • Validierung von E-Mail-Adressen, Telefonnummern und URLs
    • Extraktion von Daten aus Logdateien 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 reguläre Ausdrücke 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 Log-Zeilen, bei URL-Routing-Regeln, bei der Validierung von Formularfeldern oder beim Suchen und Ersetzen in einem Editor. Sie werden jedoch zum Problem, wenn die Eingabe tatsächlich aus einer strukturierten Sprache besteht: HTML, JSON, Quellcode oder alles, was verschachtelte Trennzeichen enthält. Verwenden Sie für solche Fälle einen echten Parser; der reguläre Ausdruck, den Sie heute schreiben, wird beim nächsten Randfall stillschweigend versagen.

    Regex Häufig gestellte Fragen

    Kurze Antworten auf die Fragen zu regulären Ausdrücken, die dir tatsächlich beim manuellen Erstellen von Mustern begegnen.

    Welche Regex-Variante verwendet dieser Tester?
    ECMAScript / JavaScript-Regex (die in Ihrem Browser integrierte Engine). Muster, die hier funktionieren, funktionieren auch in `String.prototype.match`, `RegExp.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 Suchmuster groß-/kleinschreibungsunabhängig machen?
    Schalte das `i`-Flag (Groß-/Kleinschreibung ignorieren) ein. Dadurch wird die Groß-/Kleinschreibung im gesamten Muster ignoriert, sodass `/Hello/i` mit `hello`, `HELLO` und `HeLLo` übereinstimmt. Wenn du nur für einen Teil des Musters die Groß-/Kleinschreibung ignorieren möchtest, musst du die Zeichen explizit auflisten – JavaScript-Regex unterstützt keine Inline-Modifikatoren wie `(?i:...)`.
    Warum findet mein regulärer Ausdruck keine Übereinstimmungen über mehrere Zeilen hinweg?
    Zwei Flags beeinflussen das Verhalten bei mehrzeiligen Eingaben. Das Flag `m` (Multiline) ändert `^` und `$` so, dass sie an Zeilengrenzen statt nur am Anfang/Ende der gesamten Zeichenkette übereinstimmen – nützlich für die zeilenweise Validierung. Unabhängig davon bewirkt das Flag `s` (dotAll), dass `.` auch Zeilenumbrüche berücksichtigt – ohne dieses Flag stoppt `.*` beim ersten `\n`. Die meisten Anwendungsfälle mit mehreren Zeilen benötigen beide.
    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 „lazy“: Sie verbrauchen das Minimum und überlassen es den nachfolgenden Teilen des Musters, den Rest zu übernehmen. „Greedy“ `<.+>` gegenüber `` passt auf die gesamte Zeichenkette; „lazy“ `<.+?>` passt nur auf ``. „Lazy“-Quantifier sind in der Regel das, was Sie benötigen, wenn Sie Felder zwischen Trennzeichen extrahieren.
    Wie kann ich Sonderzeichen in meinem Muster maskieren?
    Warum liefert mein regulärer Ausdruck mehr (oder weniger) Treffer als erwartet?