Regex-Tester

Reguläre Ausdrücke lokal testen und Treffer, Gruppen sowie Positionen prüfen.

Das interaktive Formular ist verfügbar, sobald JavaScript aktiviert ist.

So funktioniert es

Geben Sie einen regulären Ausdruck in JavaScript ohne die umschließenden Schrägstriche ein, ergänzen Sie Flags und fügen Sie den zu durchsuchenden Text ein. Das Ergebnis listet jeden Treffer mit seiner Nummer, der Position, an der er beginnt, und dem Text jeder Erfassungsgruppe auf; eine Gruppe, die nicht am Treffer beteiligt war, wird als — angezeigt. Sie geben das Muster so ein, wie Sie es im Code zwischen Schrägstrichen schreiben würden: mit einem Backslash, wie in \d, nicht mit zwei.

Flags verändern, wie das Muster angewendet wird: g findet alle Treffer statt nur des ersten, i ignoriert die Groß- und Kleinschreibung, m bewirkt, dass ^ und $ am Anfang und Ende jeder Zeile passen, s lässt den Punkt auch auf Zeilenumbrüche passen, u aktiviert den vollständigen Unicode-Abgleich, v ist eine erweiterte Form von u, die Mengenoperationen in Zeichenklassen ergänzt (verwenden Sie u oder v, nicht beide), y (sticky) findet Treffer nur am Anfang des Texts oder genau dort, wo der vorige Treffer endete, und d speichert Anfang und Ende jeder Gruppe (das Werkzeug zeigt diese Angaben nicht an). Ohne g (oder y) wird nur der erste Treffer angezeigt.

Positionen werden ab 0 gezählt und in UTF-16-Codeeinheiten gemessen, so wie JavaScript die Länge von Zeichenketten zählt; ein Emoji zählt daher meist als zwei. Benannte Gruppen wie (?<year>\d{4}) werden nach Nummer aufgeführt, in der Reihenfolge, in der ihre öffnenden Klammern stehen.

Die Suche läuft in einem separaten Worker und wird nach einer halben Sekunde abgebrochen. Ein Muster mit verschachtelten Wiederholungen wie ^(a+)+$ kann bei Text, der fast passt, exponentiell länger brauchen; man spricht von katastrophalem Backtracking. Statt die Seite einfrieren zu lassen, bricht das Werkzeug ab und meldet: „Die Auswertung des Ausdrucks dauerte zu lange.“ Nur die ersten 200 Treffer werden aufgeführt und gezählt; das Muster darf bis zu 500 Zeichen lang sein, der Text bis zu 100.000 Zeichen.

Verwendet wird die Regex-Engine Ihres Browsers. Muster lassen sich meist auf andere Sprachen übertragen, aber nicht immer: Python schreibt benannte Gruppen als (?P<name>…), PCRE und Java kennen possessive Quantoren und atomare Gruppen, die JavaScript fehlen, und ein (?i)-Flag am Anfang eines Musters ist in JavaScript ungültig (aktuelle Browser akzeptieren nur die auf einen Abschnitt begrenzte Form (?i:…)). Testen Sie in der Zielsprache, bevor Sie sich dort auf ein Muster verlassen.

Beispiel

Findet zwei E-Mail-ähnliche Treffer. Das Ergebnis zeigt Text, Startposition und erfasste Gruppen.

  • \b[a-z]+@([a-z0-9-]+\.)+[a-z]{2,}\b · Flags: giIm Beispieltext: [email protected] an Position 9 und [email protected] an Position 35. Gruppe 1 enthält die letzte Wiederholung ihrer Gruppe, also example. und ntools., nicht die ganze Domain.
  • ^(?<key>[^=]+)=(?<value>.*)$ · Flags: gmBei den Zeilen name=Ana und city=Porto: zwei Treffer, mit den Gruppen name und Ana, dann city und Porto. Ohne m gibt es keinen Treffer, weil sich ^ und $ dann auf den gesamten Text beziehen.
  • (\d{4})-(\d{2})-(\d{2}) · Flag: gBei 2026-10-02 und 2027-03-01: zwei Treffer, jeweils aufgeteilt in Jahr, Monat und Tag.
  • colou?r · Flags: giFindet sowohl Color als auch colour: Das ? macht das u optional, und i ignoriert das große C.

Häufige Fragen

Sind die Ausdrücke mit jeder Sprache kompatibel?

Nein. Sie verwenden die RegExp-Engine von JavaScript; Funktionsumfang und Escaping können in Python, PHP, Java oder anderen Engines abweichen.

Warum findet mein Muster nur einen Treffer?

Fügen Sie das Flag g hinzu. Ohne g stoppt ein regulärer Ausdruck beim ersten Treffer.

Warum passen ^ und $ nicht auf jede Zeile?

Standardmäßig stehen sie für Anfang und Ende des gesamten Texts. Mit dem Flag m wirken sie zeilenweise.

Was bedeutet „Die Auswertung des Ausdrucks dauerte zu lange“?

Die Suche hat länger als eine halbe Sekunde gedauert, meist wegen verschachtelter Wiederholungen wie (a+)+ oder (.*)*. Formulieren Sie die wiederholten Teile genauer, zum Beispiel [^,]* statt .*, damit die Engine weniger Möglichkeiten durchprobieren muss, um einen Treffer zu finden.

Verwandte Werkzeuge