Zum Inhalt springen

JavaScript-Regex-Tester

Prüfen Sie Treffer und Ersetzungen für Ihr Muster. Die optionale KI-Hilfe sendet Beschreibung, Muster und Flags nach Bestätigung an DeepSeek.

KI-Assistent · optional

Regex aus einer Beschreibung erstellen und debuggen

Beschreibe die gewünschte Übereinstimmung oder prüfe das aktuelle Muster. Dein Testtext bleibt im Browser.

DeepSeek-API
1 · Anforderung
Aktuelles Muster —
Gesendete Daten: Nur diese Beschreibung, die aktuelle Regex und ihre Flags werden an DeepSeek gesendet. Der Text im Regex-Tester wird nie übertragen. Datenschutzhinweise
2 · Vorgeschlagenes Muster
Das vorgeschlagene Muster, die Erklärung und synthetische Prüfungen erscheinen hier. Vor deiner Bestätigung wird nichts gesendet.
Regulärer Ausdruck
Ersetzen durch

So testen Sie einen regulären JavaScript-Ausdruck

Der Tester führt ein Muster gegen Beispieltext mit derselben Engine aus, die Ihr Browser verwendet – was hier passt, passt auch in Ihrer Anwendung. Neben der Trefferliste sehen Sie die gesetzten Flags, die Erfassungsgruppen und eine Vorschau der Ersetzung.

Die Muster sind JavaScript (ECMAScript), nicht PCRE oder Python. Die Dialekte überschneiden sich stark, aber nicht vollständig – das ist der häufigste Grund, warum ein Muster, das anderswo funktioniert, hier scheitert. Fertige Muster für E-Mail, URL, IPv4, UUID, Datum, Uhrzeit, Hex-Farbe und Zahlen sind einen Klick entfernt.

  1. Fügen Sie den zu durchsuchenden Text in das Beispielfeld ein.
  2. Geben Sie das Muster ohne Begrenzungszeichen und ohne Flags ein – die Seite ergänzt beides – oder wählen Sie ein Schnellmuster und passen es an.
  3. Setzen Sie die benötigten Flags: globale Suche, Groß-/Kleinschreibung ignorieren, mehrzeilig, Punkt erfasst Zeilenumbrüche oder Unicode-Modus.
  4. Lesen Sie die Trefferliste: Jeder Eintrag zeigt den gefundenen Text, seine Position (ab 0) und die Erfassungsgruppen – so sehen Sie, warum eine Gruppe leer bleibt.
  5. Tragen Sie den Ersatztext ein, um die Ersetzung vorab zu prüfen; ohne globale Suche wird nur der erste Treffer ersetzt.

Details zu regulären Ausdrücken in JavaScript

Welcher Regex-Dialekt hier läuft

Es ist ECMAScript. Benannte Gruppen (?<name>...), Lookbehind-Assertions (?<=...) und (?<!...) sowie Unicode-Eigenschaftsklassen wie \p{Letter} mit dem Flag u funktionieren in aktuellen Browsern. Possessive Quantoren, atomare Gruppen, Rekursion, die Anker \A und \Z und Inline-Modifikatoren wie (?i) kennt die Sprache nicht.

Solche Unterschiede brechen Muster, die für Python, PHP oder Java geschrieben wurden: Aus (?P<name>...) wird (?<name>...), \Z wird durch $ ersetzt und Modifikatoren wandern aus dem Muster in die Kontrollkästchen. Damit ist der Großteil der Praxis abgedeckt.

Was die einzelnen Flags bewirken

Die globale Suche liefert alle Treffer statt nur des ersten – sie ist auch dafür verantwortlich, dass eine Ersetzung im ganzen Text wirkt. Groß-/Kleinschreibung ignorieren lässt Buchstaben in jeder Schreibweise passen. Mehrzeilig erlaubt ^ und $ an Zeilenumbrüchen innerhalb des Textes, nicht nur am Anfang und Ende der Zeichenkette.

Punkt erfasst Zeilenumbrüche lässt einen Punkt den Umbruch mitkonsumieren, was für ganze Textblöcke nötig ist. Der Unicode-Modus arbeitet mit Codepunkten: Ein Punkt trifft dann ein vollständiges Emoji statt der Hälfte, und \p{...}-Klassen werden verfügbar.

Treffer, Gruppen und Ersetzungen

Erfassungsgruppen werden in der Reihenfolge ihrer öffnenden Klammern nummeriert; eine nicht erfassende Gruppe (?:...) zählt nicht mit, was praktisch ist, wenn nur eine Alternative gruppiert werden soll. Benannte Gruppen werden in der Ersetzung als $<name> verwendet – deutlich lesbarer als $3, wenn das Muster wächst.

Im Ersatztext fügen $1 bis $99 erfasste Gruppen ein, $& fügt den gesamten Treffer ein und $$ ein wörtliches Dollarzeichen. Vorsicht bei verschachtelten Quantoren wie (a+)+ auf langen, fast passenden Eingaben: Sie können exponentiell viele Wege prüfen und die Seite blockieren.

Fragen zu Treffern und Ersetzungen

Wird mein Testtext auf einen Server hochgeladen?

Nein. Treffer und Ersetzungen berechnet Ihr Browser mit der JavaScript-Engine, und die Schaltflächen lösen keine Netzwerkanfrage aus. Einzige Ausnahme ist das optionale KI-Panel: Nach dem Setzen des Häkchens sendet es nur Ihre Beschreibung, das aktuelle Muster und dessen Flags an DeepSeek – niemals den Beispieltext.

Warum läuft mein Muster in Python oder PHP, hier aber nicht?

Weil der Dialekt anders ist. Python schreibt benannte Gruppen als (?P<name>...) und kennt \Z; Java und PCRE bieten possessive Quantoren und atomare Gruppen; PHP erlaubt Modifikatoren wie (?i). ECMAScript hat nichts davon – das Muster muss übersetzt werden.

Warum wird nur der erste Treffer ersetzt?

Weil die globale Suche aus ist. Ohne dieses Flag endet die Ersetzung nach dem ersten Treffer – dasselbe Verhalten wie bei String.prototype.replace mit einem nicht globalen Muster. Für den ganzen Text die Option Globale Suche aktivieren.

Was bewirkt jedes Flag genau?

Globale Suche: alle Treffer und alle Ersetzungen. Groß-/Kleinschreibung ignorieren: Buchstaben passen in jeder Schreibweise. Mehrzeilig: ^ und $ treffen auch an inneren Zeilenumbrüchen. Punkt erfasst Zeilenumbrüche: Ein Punkt darf den Umbruch konsumieren. Unicode: Codepunkt-Semantik – ein Emoji zählt als ein Zeichen, \p{...}-Klassen werden verfügbar.

Wie lese ich die Positionen und Gruppen in der Liste?

Die Position ist der Index, an dem der Treffer beginnt, gezählt ab 0. Erfassungsgruppen erscheinen nummeriert ($1, $2...) und in Anführungszeichen; eine benannte Gruppe steht zusätzlich mit ihrem Namen. Nimmt eine optionale Gruppe nicht teil, bleibt sie leer – genau das braucht man beim Debuggen.

Was kann ich in das Ersatzfeld schreiben?

$1 bis $99 fügen die jeweilige Gruppe ein, $& den gesamten Treffer, $<name> eine benannte Gruppe und $$ ein wörtliches Dollarzeichen. Wie in JavaScript wird ohne globale Suche nur der erste Treffer ersetzt.

Zuletzt verwendet: