T

Text Machine

Leistungsstarke Text-Tools, direkt in Ihrem Browser

Regex-Tester

Erstellen und testen Sie reguläre Ausdrücke in Echtzeit an Ihrem eigenen Text. Sehen Sie jeden Treffer hervorgehoben, untersuchen Sie Erfassungsgruppen und betrachten Sie Ersetzungen in der Vorschau – alles in Ihrem Browser.

Regulärer Ausdruck

/

/g

Flags

Testtext
Ersetzen durch

Tipp: Aktivieren Sie das g-Flag, um jeden Treffer zu ersetzen, statt nur den ersten.

So verwenden Sie Regex-Tester

  1. 1

    Muster schreiben

    Geben Sie einen regulären Ausdruck in das Musterfeld ein und schalten Sie dann die Flag-Chips (g, i, m und weitere) um, um genau zu steuern, wie der Abgleich funktioniert.

  2. 2

    Testtext hinzufügen

    Fügen Sie den Text, den Sie durchsuchen möchten, in das Feld „Testtext“ ein. Treffer werden sofort hervorgehoben, während Sie tippen oder das Muster bearbeiten.

  3. 3

    Treffer untersuchen

    Prüfen Sie in der Ergebnisliste jeden Treffer, seine Position im Text sowie alle erfassenden und benannten Gruppen, um sicherzustellen, dass sich das Muster wie erwartet verhält.

  4. 4

    Ersetzen oder kopieren

    Geben Sie eine Ersetzung ein, um Substitutionen mit Rückverweisen im $1-Stil in der Vorschau zu sehen, und kopieren Sie das Ergebnis dann direkt in Ihren Code oder Ihr Dokument.

Reguläre Ausdrücke in der Praxis: ein Feldhandbuch für Entwickler

Was ein Regex wirklich beschreibt

Ein regulärer Ausdruck ist eine winzige Mustersprache, um Mengen von Zeichenketten zu beschreiben. Statt zu fragen, ob ein Text einem festen Wert gleicht, beschreiben Sie seine Form – eine Folge von Ziffern, ein Wort gefolgt von einem At-Zeichen und einer Domain, drei Buchstaben und dann ein Bindestrich –, und die Engine durchsucht Ihren Text nach jedem Teilstring, der dazu passt. Diese eine Idee treibt Validierung, Suchen-und-Ersetzen, das Parsen von Logs, das Tokenisieren und die Datenextraktion in nahezu jeder Sprache und jedem Editor an.

Dieser Tester verwendet die in Ihren Browser integrierte JavaScript-Engine (ECMAScript) – dieselbe, die auch Node.js und Web-Apps nutzen. Ein Muster, das hier trifft, verhält sich daher in Ihrem Anwendungscode genau gleich, was den Tester zu einer verlässlichen Spielwiese macht, um ein Muster zu bauen und zu debuggen, bevor Sie es in ein Projekt einfügen.

Zeichenklassen und die Bausteine

Der größte Teil eines Musters besteht einfach aus wörtlichen Zeichen, die sich selbst treffen, durchsetzt mit einer Handvoll besonderer Token. Eine Zeichenklasse in eckigen Klammern trifft auf genau ein Zeichen aus einer Menge: einen Bereich von Kleinbuchstaben, eine Menge von Vokalen oder eine Ziffer. Das Kürzel Backslash-d trifft auf eine Ziffer, Backslash-w auf ein Wortzeichen (Buchstaben, Ziffern, Unterstrich), Backslash-s auf Leerraum, und der Punkt trifft auf jedes Zeichen außer einem Zeilenumbruch. Schreiben Sie das Kürzel groß, um es umzukehren – Backslash-D ist jedes Nicht-Ziffer-Zeichen.

Dies sind die Atome, aus denen Sie alles Übrige zusammensetzen. Ein Muster für eine Hex-Farbe ist zum Beispiel ein Anker für das Rautezeichen, gefolgt von einer wiederholten Zeichenklasse aus Hexadezimalziffern; ein Muster für ein Wort ist schlicht Backslash-w, ein- oder mehrfach wiederholt. Bauen Sie Muster aus diesen kleinen Teilen, statt zu einem einzigen riesigen Ausdruck zu greifen.

Anker, Quantoren und Alternation

Anker treffen auf Positionen statt auf Zeichen. Das Caret-Zeichen trifft auf den Anfang der Zeichenkette (oder mit dem Multiline-Flag auf den Anfang einer Zeile), und das Dollarzeichen trifft auf das Ende; das Wortgrenzen-Token Backslash-b trifft auf die Kante zwischen einem Wortzeichen und einem Nicht-Wortzeichen – so treffen Sie ein ganzes Wort, ohne es innerhalb eines längeren zu erwischen. Quantoren steuern die Wiederholung: Das Pluszeichen bedeutet eins oder mehr, das Sternchen bedeutet null oder mehr, und das Fragezeichen bedeutet optional. Sie können auch eine genaue Anzahl oder einen Bereich über die Form mit geschweiften Klammern angeben, wenn Sie etwa einen Wert benötigen, der sich zwei- bis viermal wiederholt.

Alternation mit dem senkrechten Strich bedeutet oder – ein Muster aus cat oder dog trifft auf eines der beiden Wörter. Schließen Sie die Alternativen in Klammern ein, um die Auswahl einzugrenzen. Standardmäßig sind Quantoren gierig und greifen so viel wie möglich; setzen Sie ein Fragezeichen hinter einen Quantor, um ihn genügsam zu machen, sodass er so wenig wie möglich trifft – der übliche Ausweg, wenn ein Muster, das ein einzelnes Tag erfassen sollte, alles bis zum letzten in der Zeile verschlingt.

Erfassungsgruppen und ihr Einsatz

Klammern erfüllen einen Doppelzweck: Sie gruppieren einen Teil des Musters und erfassen, worauf dieser Teil getroffen hat. Nach einem Treffer stehen die erfassten Stücke als nummerierte Gruppen bereit – das erste Klammerpaar ist Gruppe eins, das nächste Gruppe zwei –, und die Ergebnisliste zeigt hier jede einzelne an, sodass Sie bestätigen können, dass Sie genau das beabsichtigte Fragment herauslösen. Ein Muster für eine E-Mail-ähnliche Zeichenkette mit getrennten Klammern um den lokalen Teil, die Domain und die Endung lässt Sie diese drei Stücke einzeln zurücklesen.

Benannte Gruppen, geschrieben mit jener Syntax, die direkt nach der öffnenden Klammer einen Namen in spitzen Klammern platziert, geben diesen Erfassungen lesbare Bezeichnungen statt bloßer Nummern und erscheinen in einem eigenen Abschnitt. Wenn Sie nur gruppieren wollen, ohne den Aufwand der Erfassung, hält eine nicht erfassende Gruppe – eine öffnende Klammer, gefolgt von einem Fragezeichen und einem Doppelpunkt – Ihre Gruppennummern sauber. Auf eben diese Erfassungen bezieht sich auch Ihr Ersetzungsschritt.

Flags verändern den gesamten Abgleich

Flags sind Modifikatoren, die verändern, wie das gesamte Muster angewendet wird. Global findet jeden Treffer, statt beim ersten zu stoppen, was unverzichtbar ist, um alle Vorkommen zu ersetzen und nicht bloß eines. Ignore-Case lässt Buchstaben unabhängig von der Groß- und Kleinschreibung treffen. Multiline definiert die Anker Caret und Dollar so um, dass sie an jedem Zeilenumbruch treffen, nicht nur am alleräußersten Anfang und Ende der Eingabe.

Die übrigen Flags sind situationsabhängig, aber wichtig. Dotall lässt den Punkt auch auf Zeilenumbruchzeichen treffen, sodass ein Muster über mehrere Zeilen reichen kann. Unicode schaltet die vollständige Unicode-Behandlung für Codepunkte jenseits des Grundbereichs sowie für Unicode-Eigenschafts-Escapes ein. Sticky verankert jeden Treffer an der Position unmittelbar nach dem vorherigen – so wandern Tokenizer durch eine Eingabe, ohne vorauszuspringen. Schalten Sie die Flags hier um und beobachten Sie, wie sich die hervorgehobenen Treffer ändern, um ein Gespür für jedes einzelne zu entwickeln.

Muster, die Sie ständig schreiben werden

Einige Formen tauchen immer wieder auf. Alle Ganzzahlen aus einem Textbrocken zu ziehen, ist Backslash-d, ein- oder mehrfach wiederholt, mit dem Global-Flag. Eine grobe E-Mail-Prüfung besteht aus einem oder mehreren Wortzeichen, einem At-Zeichen, einem oder mehreren Wortzeichen, einem wörtlichen Punkt und einer kurzen Folge von Buchstaben – ausreichend für einen schnellen Plausibilitätsfilter, wenngleich bewusst locker gehalten. Leerraumfolgen zu beschneiden oder zu reduzieren, einen Slug aus Kleinbuchstaben und Bindestrichen zu validieren und den Inhalt zwischen zwei Markierungen zu extrahieren, sind allesamt alltägliche Aufgaben.

Widerstehen Sie der Versuchung, wirklich komplexe Formate mit einem einzigen Monster-Muster zu validieren. Besonders die Grammatiken von E-Mail-Adressen und URLs sind notorisch schwer vollständig in einem Regex zu erfassen; dafür schlägt ein lockeres Muster plus einem echten Parser oder einer eigens dafür gedachten Bibliothek meist einen unleserlichen Ausdruck, den Sie in einem halben Jahr nicht mehr anzufassen wagen.

Katastrophales Backtracking und wie man es vermeidet

Das Backtracking der Engine macht Regex mächtig, kann ein Muster aber auch zur Explosion bringen. Wenn zwei quantifizierte Teile eines Musters auf vielfach überlappende Weise dieselben Zeichen treffen können – ein klassisches Beispiel ist eine Gruppe, die selbst wiederholt wird, sodass innere und äußere Wiederholung miteinander konkurrieren –, probiert die Engine womöglich eine astronomische Zahl von Kombinationen an einer Zeichenkette durch, die am Ende doch nicht trifft. Bei einer langen Eingabe kann das Sekunden lang blockieren oder ganz hängen bleiben, und auf einem Server wird es zu einem Angriffsvektor zur Dienstverweigerung, bekannt als ReDoS.

Die Abwehr ist struktureller Natur. Verschachteln Sie keinen Quantor in einem anderen, der dasselbe treffen kann, ziehen Sie spezifischere Zeichenklassen einem freizügigen Punkt vor, damit jeder Schritt nur einen einzigen Weg hat, die Eingabe zu verbrauchen, und verankern Sie das Muster, wo immer es geht. Wenn Sie ein riskantes Muster testen müssen, tun Sie es zuerst hier an einer realistischen Worst-Case-Zeichenkette, wo ein außer Kontrolle geratenes Muster Sie einen Browser-Tab kostet statt eines Produktionsausfalls.

Ersetzungen gefahrlos in der Vorschau prüfen

Suchen-und-Ersetzen ist der Bereich, in dem sich Regex täglich auszahlt, und das Ersetzungsfeld lässt Sie das Ergebnis in der Vorschau prüfen, bevor Sie es irgendwo übernehmen. Verweisen Sie in der Ersetzung mit einem Dollarzeichen und der Gruppennummer auf Ihre Erfassungsgruppen – Dollar-eins fügt ein, worauf die erste Gruppe getroffen hat –, um etwa ein Datum umzustellen, einen Namen umzuformatieren oder Treffer in Markup einzufassen. Denken Sie daran, dass ohne das Global-Flag nur der erste Treffer ersetzt wird; aktivieren Sie Global, um jedes Vorkommen umzuwandeln.

Alles läuft lokal in Ihrem Browser über dessen native Engine, sodass nichts von dem, was Sie einfügen – Log-Zeilen, Quellcode, Kundendaten –, hochgeladen, protokolliert oder gespeichert wird. Das macht den Tester zu einem sicheren Ort, um an einer realen Probe zu feilen, bis sowohl die Treffer als auch die Ersetzungsausgabe genau stimmen, und das fertige Muster anschließend mit Zuversicht in Ihren Code zu kopieren.

Häufig gestellte Fragen

Was ist ein regulärer Ausdruck?
Ein regulärer Ausdruck, kurz Regex, ist ein kompaktes Muster zum Suchen, Abgleichen und Umwandeln von Text. Entwickler nutzen ihn in nahezu jeder Programmiersprache und in jedem Texteditor zur Eingabevalidierung, für Suchen-und-Ersetzen, zum Parsen und zur Datenextraktion.
Welche Regex-Variante verwendet dieser Tester?
Dieses Tool verwendet die in Ihren Browser integrierte JavaScript-Engine (ECMAScript) für reguläre Ausdrücke – dieselbe Engine, die auch Node.js und moderne Web-Apps nutzen. Muster und Flags verhalten sich genau so wie in Ihrem eigenen JavaScript-Code.
Was bedeuten die Flags?
g (global) findet jeden Treffer, statt beim ersten zu stoppen; i ignoriert die Groß-/Kleinschreibung; m sorgt dafür, dass ^ und $ auch an Zeilenumbrüchen gelten; s sorgt dafür, dass der Punkt auch Zeilenumbruchzeichen entspricht; u aktiviert die vollständige Unicode-Behandlung; und y (sticky) verankert den Abgleich an einer bestimmten Position im Text.
Wie funktionieren Erfassungsgruppen?
Klammern in Ihrem Muster erzeugen Erfassungsgruppen, die Teile jedes Treffers herauslösen. Auf nummerierte Gruppen verweisen Sie mit $1, $2 und so weiter, während benannte Gruppen in der Form (?<name>…) separat aufgeführt werden – so extrahieren Sie genau die Daten, die Sie benötigen.
Werden meine Daten an einen Server gesendet?
Nein. Jeder Treffer und jede Ersetzung läuft vollständig in Ihrem Browser über dessen native Regex-Engine. Nichts, was Sie eingeben, wird hochgeladen, protokolliert oder gespeichert – so funktioniert der Tester offline und hält Ihren Text vollkommen privat.

Verwandte Tools

Machen Sie weiter mit diesen praktischen Tools

HTML zu Text Konverter

JSON-Formatierer

JWT-Decoder

CSS-Verlaufsgenerator

CSS-Box-Shadow-Generator

Text zu HTML Konverter