TanodTools
DE

Regex-Tester

Testen Sie einen regulären Ausdruck an Beispieltext und sehen Sie jeden Treffer, seine Gruppen und das Ergebnis einer Ersetzung.

Läuft vollständig in Ihrem Browser

Flags

Treffer im Text

  
#PositionTrefferGruppen

Regex-Syntax von JavaScript (ECMAScript), so wie Ihr Browser sie unterstützt. Text bis 5 MB; die ersten 1.000 Treffer werden aufgelistet und hervorgehoben. Ein Muster, das länger als 2 Sekunden läuft, wird gestoppt.

So testen Sie einen regulären Ausdruck

  1. Geben Sie das Muster zwischen den Schrägstrichen ein und haken Sie die benötigten Flags an, etwa g für alle Treffer oder i, um Groß- und Kleinschreibung zu ignorieren.
  2. Fügen Sie Ihren Testtext ein. Treffer werden während der Eingabe hervorgehoben, und die Tabelle listet jeden Treffer mit Position und Gruppen auf.
  3. Um eine Ersetzung zu prüfen, geben Sie einen Ersatz wie $2-$1 oder $<year> ein und lesen das Ergebnis darunter.

Muster sicher testen

Der Regex-Tester baut aus Ihrem Muster und den Flags ein JavaScript-RegExp und führt es in einem Hintergrund-Worker aus, mit derselben Engine, die Ihr Code in diesem Browser verwendet. Die Treffer kommen mit ihrer Startposition und jeder Gruppe zurück, und die Seite zeichnet sie mit abwechselnden Hervorhebungen über Ihren Text, damit benachbarte Treffer unterscheidbar bleiben. Ein leerer Treffer, wie ihn \b oder a* erzeugen kann, erscheint als schmaler Balken.

Die Ausführung in einem Worker ist wichtig, weil ein regulärer Ausdruck exponentiell lange brauchen kann. Läuft ein Muster nach 2 Sekunden noch, wird der Worker gestoppt, und Sie erhalten eine Meldung statt eines eingefrorenen Tabs. Dieselbe Schutzmaßnahme gilt für Suchen und Ersetzen.

Positionen werden in UTF-16-Codeeinheiten gezählt, so wie JavaScript-Strings zählen: Ein Emoji oder ein anderes Zeichen außerhalb der Basisebene belegt zwei. Die Liste zeigt die ersten 1.000 Treffer; die Gesamtzahl darüber umfasst jeden Treffer.

Tipps

Häufige Fragen

Welche Regex-Variante wird verwendet?

Die von JavaScript, ausgeführt von der Engine Ihres eigenen Browsers; die Ergebnisse sind also genau das, was RegExp in Ihrem Browser oder in Node.js liefert. Die meiste alltägliche Syntax ist mit PCRE, Python und Java gleich, einige Funktionen unterscheiden sich aber: Possessive Quantoren und atomare Gruppen werden nicht unterstützt, und Lookbehind, benannte Gruppen und das Flag v brauchen einen aktuellen Browser.

Warum wird nur ein Treffer angezeigt?

Ohne das Flag g (global) findet ein regulärer Ausdruck in JavaScript nur den ersten Treffer, und Ersetzen ändert nur das erste Vorkommen. Haken Sie g an, um alle zu finden. Der Tester hält sich genau an die Sprache, damit Sie sehen, was Ihr Code tun wird.

Was bewirken die Flags?

g findet alle Treffer, i ignoriert Groß- und Kleinschreibung, m lässt ^ und $ an Zeilenumbrüchen greifen, s lässt . auch Zeilenumbrüche erfassen, u schaltet volle Unicode-Verarbeitung ein, v ist der neuere Unicode-Modus mit Mengenoperationen, y (sticky) trifft nur an der aktuellen Position, und d speichert den Anfang jeder Gruppe, was der Tester für die Gruppenpositionen ohnehin nutzt.

Wie verwende ich Gruppen im Ersatz?

$1, $2 und so weiter fügen nummerierte Gruppen ein, $<name> eine benannte Gruppe, $& den ganzen Treffer, $` und $' den Text davor und danach, und $$ schreibt ein echtes Dollarzeichen.

Warum wurde mein Muster wegen zu langer Laufzeit gestoppt?

Manche Muster, etwa ^(a+)+$ auf einer langen Folge von a, die nicht so endet wie erwartet, zwingen die Engine, eine enorme Zahl von Möglichkeiten durchzuprobieren. Das nennt man katastrophales Backtracking. Der Tester führt jedes Muster in einem Hintergrund-Worker aus und stoppt es nach 2 Sekunden, damit die Seite benutzbar bleibt. Schreiben Sie verschachtelte Wiederholungen wie (a+)+ als a+.

Wird mein Text irgendwohin gesendet?

Nein. Muster und Text bleiben in Ihrem Browser; die Suche findet auf Ihrem Gerät statt, und nichts wird hochgeladen oder gespeichert.