Regex-Tester

Läuft in deinem Browser; nichts wird hochgeladen

Reguläre Ausdrücke in JavaScript an deinem Text testen, mit Capture-Gruppen und Ersetzung.

Test text

Type a pattern

Matches are listed here with their position and capture groups. Patterns use JavaScript's RegExp, as in browsers and Node.js; type them without the surrounding slashes.
Type a pattern
/gLn 1, Col 1

Was ist ein regulärer Ausdruck?

Ein regulärer Ausdruck, kurz Regex, ist ein Muster, das eine Menge von Strings beschreibt. \d{3} steht für drei Ziffern, [a-z]+ für einen oder mehrere Kleinbuchstaben, und ^ und $ verankern einen Treffer am Anfang und Ende. Programme nutzen Muster, um Text zu finden, herauszuziehen, zu prüfen und zu ersetzen.

Teile eines Musters in Klammern sind Capture-Gruppen. Bei (\d{4})-(\d{2}) auf 2025-07 ist Gruppe 1 2025 und Gruppe 2 07. Benannte Gruppen wie (?<year>\d{4}) erlauben es, einen Teil über seinen Namen anzusprechen. Flags ändern das Verhalten des ganzen Musters: i ignoriert Groß- und Kleinschreibung, und g findet alle Treffer statt nur des ersten.

Dieser Tester nutzt RegExp aus JavaScript, die Engine in Browsern und Node.js, ein Muster, das hier funktioniert, funktioniert also genauso in JavaScript und TypeScript. Andere Sprachen teilen den Großteil der Syntax, aber nicht alles; die Fragen unten nennen die häufigsten Unterschiede.

So benutzt du dieses Tool

  1. 1Tippe ein Muster in das Feld zwischen den Schrägstrichen, ohne die Schrägstriche selbst. Presets lädt ein Muster mit Beispieltext.
  2. 2Schalte Flags in der Werkzeugleiste ein und aus: g global, i Groß- und Kleinschreibung ignorieren, m mehrzeilig, s dotAll, u und v Unicode-Modi, y sticky und d Gruppenindizes. Fahr mit der Maus über ein Flag, um zu sehen, was es macht.
  3. 3Füge den zu durchsuchenden Text in Test text ein oder zieh eine Datei darauf. Treffer werden beim Tippen hervorgehoben und unter Matches mit Zeile, Spalte und Capture-Gruppen aufgelistet.
  4. 4Klick auf einen Treffer oder drück Enter im Musterfeld (anderswo F7), um ihn im Text zu markieren und seine Gruppen hervorgehoben zu sehen. Shift+Enter oder Shift+F7 geht zurück.
  5. 5Öffne Replace, um eine Ersetzung wie $2/$1 oder $<year> auszuprobieren und das Ergebnis zu sehen. Apply to test text schreibt es in den Text; Ctrl+Z macht das rückgängig.

Fehlerbehebung

Nach 2 Sekunden abgebrochen
Das Muster löst bei diesem Text katastrophales Backtracking aus: Verschachtelte Quantoren wie (a+)+ oder (.*,)* probieren exponentiell viele Möglichkeiten durch, bevor sie scheitern. Sorg dafür, dass jeder wiederholte Teil nur auf eine Weise passen kann, etwa mit [^,]* statt .*. Dasselbe Muster kann einen Server lahmlegen, deshalb wird es hier abgebrochen.
Das Muster funktioniert im Code, aber nicht hier, oder umgekehrt
In einem String-Literal im Code wird jeder Backslash doppelt geschrieben ("\\d+"). Hier tippst du das Muster selbst, mit einfachen Backslashes (\d+), so wie zwischen den Schrägstrichen von /\d+/.
Es wird nur ein Treffer gefunden
Das Flag g ist aus. Ohne es hört die Suche nach dem ersten Treffer auf, und Replace ersetzt nur den ersten.
^ oder $ passen nur einmal
Ohne das Flag m passen sie nur ganz am Anfang und Ende des gesamten Textes. Schalte m ein, damit sie an jeder Zeile passen.
Ungültiges Escape oder ungültige Gruppe mit dem Flag u
Der Unicode-Modus ist strenger: Escapes ohne Bedeutung, etwa \- außerhalb einer Zeichenklasse, werden zu Fehlern. Entferne den Backslash oder schalte u aus.

Häufige Fragen

Wie unterscheidet sich Regex in JavaScript von PCRE, Python oder Java?

JavaScript kennt keine possessiven Quantoren (a++) oder atomaren Gruppen ((?>…)), kein \A und \Z (nimm ^ und $ ohne das Flag m) und kein (?i) am Anfang eines Musters: Setz Flags stattdessen mit den Schaltern. Python schreibt benannte Gruppen als (?P<name>…), JavaScript als (?<name>…). Lookbehind, benannte Gruppen und Unicode-Property-Escapes wie \p{L} (mit u oder v) werden in aktuellen Browsern unterstützt.

Was ist der Unterschied zwischen den Flags m und s?

m (multiline) lässt ^ und $ an Anfang und Ende jeder Zeile passen. s (dotAll) lässt . auch auf Zeilenumbrüche passen; ohne es passt . auf jedes Zeichen außer einem Zeilenumbruch.

Ist die E-Mail-Vorlage ein vollständiger E-Mail-Validator?

Nein. Sie findet die übliche Form name@domain.tld in Text, was du beim Durchsuchen von Logs oder Responses meist willst. Der vollständige Adressstandard erlaubt viel mehr. Um eine Adresse zu prüfen, kontrolliere die Grundform und schick dann eine Bestätigungs-E-Mail.

Wird mein Text an einen Server geschickt?

Nein. Die Suche läuft in deinem Browser, in einem Hintergrund-Worker dieser Seite, und nichts wird hochgeladen. Damit nach einem Neuladen nichts verloren geht, bleiben Muster und Text im Session Storage dieses Tabs, bis du sie löschst oder den Tab schließt. Copy link legt die Eingabe hinter das # im Link; diesen Teil schicken Browser nie an einen Server, aber jeder, dem du den Link gibst, kann sie lesen.