Kostenloser Konverter

Regex Tester

Testen und debuggen Sie reguläre Ausdrücke sofort in Ihrem Browser. Markieren Sie Übereinstimmungen, zeigen Sie Erfassungsgruppen an und verwenden Sie den Ersetzungsmodus – kostenlos und privat.

//g
Flaggen:

Über dieses Tool

Reguläre Ausdrücke sind eine domänenspezifische Sprache zum Abgleichen von Mustern in Texten. Sie sind seit 1968 Teil der Informatik und heute in jede moderne Programmiersprache, jeden Texteditor und jedes Befehlszeilensuchtool integriert. Die Syntax ist prägnant, aber fehleranfällig: Kleine Änderungen führen zu einem geringfügig unterschiedlichen Übereinstimmungsverhalten und komplexe Ausdrücke werden schnell unleserlich. Ein Tester, der Übereinstimmungen in Echtzeit anzeigt, während Sie das Muster bearbeiten, ist die effektivste Möglichkeit, Regex zu entwickeln und zu überprüfen.

Dieser Tester wird in Ihrem Browser mithilfe der JavaScript-Regex-Engine ausgeführt (die gleiche Engine, die Ihre Anwendung verwendet, wenn sie in einem Browser ausgeführt wird). Muster und Testtext werden reaktiv aktualisiert: Bei jeder Änderung an einem der beiden wird der Abgleich erneut ausgeführt. Übereinstimmungsgruppen werden hervorgehoben, erfasste Gruppen werden aufgelistet und Flags (ohne Berücksichtigung der Groß-/Kleinschreibung, mehrzeilig, global) werden zum Testen angezeigt.

Die Regex-Syntax variiert geringfügig zwischen den Engines. JavaScript folgt der ECMAScript-Spezifikation. Python, PCRE (von PHP und vielen anderen verwendet), Java und Go haben jeweils ihre eigenen Dialekte mit überlappenden, aber nicht identischen Funktionen. Die hier entwickelten Muster verwenden die ECMAScript-Syntax. Die Cross-Engine-Portabilität erfordert die Überprüfung der Dokumentation jedes Ziels.

Warum einen Regex-Tester verwenden?

Regex-Fehler sind nach der Bereitstellung bekanntermaßen schwer zu beheben. Ein Muster, das vernünftig aussieht, kann mehr oder weniger als beabsichtigt übereinstimmen, in Randfällen fehlschlagen oder bei bestimmten Eingaben zu katastrophalen Rückschlägen führen. Das interaktive Testen von Mustern anhand repräsentativer Eingaben erkennt Probleme vor der Codeüberprüfung und -produktion.

Auch Muster profitieren von der Dokumentation. Durch die Anzeige eines regulären Ausdrucks neben der Eingabe, mit der er übereinstimmen sollte, und der Eingabe, mit der er nicht übereinstimmen sollte, wird die Absicht deutlich. Zukünftige Betreuer (einschließlich Ihnen selbst in sechs Monaten) schätzen dokumentierte Testfälle mehr als clevere Einzeiler.

So verwenden Sie es

Geben Sie ein Muster ein, geben Sie eine Testeingabe ein und sehen Sie die hervorgehobenen Übereinstimmungen live.

  1. Geben Sie Ihr Muster ein: Geben Sie das Regex-Muster in das Musterfeld ein. Es funktionieren sowohl wörtliche reguläre Ausdrücke (/pattern/flags) als auch reine Musterformen. Flags können über den Flags-Eingang gesetzt werden.
  2. Testeingabe hinzufügen: Fügen Sie Beispieltext ein, mit dem das Muster übereinstimmen soll (und idealerweise auch Text, mit dem es nicht übereinstimmen sollte). Der Tester führt das Muster gegen die Eingabe durch und hebt Übereinstimmungen hervor.
  3. Flags setzen: Gemeinsame Flags: g (global, alle Übereinstimmungen finden), i (Groß- und Kleinschreibung wird nicht beachtet), m (mehrzeilig, ^ und $ entsprechen Zeilenanfang/-ende), s (dotall, . entspricht Zeilenumbrüchen), u (Unicode).
  4. Ergebnisse prüfen: Jede Übereinstimmung wird in der Eingabe hervorgehoben. Capture-Gruppen werden in einer Liste mit Gruppenindex und -wert angezeigt. Der Tester zeigt außerdem die Anzahl der Übereinstimmungen und etwaige Kompilierungsfehler im Muster an.

Häufige Anwendungsfälle

Technische Details

JavaScript-Regex folgt der ECMAScript-Spezifikation. Hauptfunktionen: Zeichenklassen ([abc], [^abc]), Quantoren (*, +, ?, {n,m}), Alternation (|), Gruppierung ((...)), einfangende und nicht einfangende Gruppen, Lookahead und Lookbehind (moderne Engines), Rückverweise, benannte Gruppen, Unicode-Eigenschafts-Escapes (mit u-Flag) und der Standardsatz von Escape-Sequenzen.

Wichtige Unterschiede zu PCRE und Python: Lookbehind-Unterstützung ist neu in JavaScript (2018+); Benannte Gruppen verwenden die Syntax (?<name>...); Für einige Unicode-Escapezeichen ist das u-Flag erforderlich, um ordnungsgemäß zu funktionieren. Muster, die für die sprachübergreifende Verwendung vorgesehen sind, sollten anhand der Dokumentation jedes Ziels überprüft werden.

Leistung: Backtracking-basierte Regex-Engines (die meisten einschließlich JavaScript) können bei bestimmten pathologischen Mustern zu katastrophalem Backtracking führen. Tests, bei denen der Tester hängen bleibt, sind ein Zeichen dafür, dass das Muster vereinfacht werden muss – typischerweise durch die Vermeidung verschachtelter Quantoren und mehrdeutiger Abwechslung.

Best Practices

Häufig gestellte Fragen

Welche Regex-Variante unterstützt dieses Tool?
Es verwendet die integrierte RegExp-Engine von JavaScript, die Standardsyntax einschließlich Lookaheads, Lookbehinds (in modernen Browsern), benannten Capture-Gruppen und Unicode-Eigenschafts-Escapes unterstützt.
Kann ich Regex-Ersetzungen testen?
Ja. Wechseln Sie in den Ersetzungsmodus, um ein Ersetzungsmuster einzugeben. Sie können $1, $2 usw. für Rückverweise auf Erfassungsgruppen und $<name> für benannte Gruppen verwenden.
Warum stimmt mein regulärer Ausdruck hier anders überein als in Python/PHP?
Verschiedene Programmiersprachen haben leicht unterschiedliche Regex-Engines. JavaScript unterstützt keine Possessivquantoren oder einige PCRE-spezifische Funktionen. Die Kernsyntax (Zeichenklassen, Quantoren, Gruppen) ist in allen Sprachen gleich.
Speichert das Tool meine Regex-Muster?
Nein. Es wird nichts gespeichert oder übertragen. Das Tool läuft vollständig in Ihrem Browser. Sie können Muster mit Lesezeichen versehen oder freigeben, indem Sie die Regex-Zeichenfolge kopieren.
Wie ordne ich ein wörtliches Sonderzeichen zu?
Escape es mit einem Backslash. So passen Sie einen literalen Punkt an: \. So passen Sie einen wörtlichen Backslash an: \\. Innerhalb von Zeichenklassen [...] verlieren die meisten Sonderzeichen ihre Bedeutung.
Läuft der Tester auf einem Server?
Nein. Die Musterkompilierung und der Musterabgleich erfolgen in Ihrem Browser mithilfe des nativen RegExp-Objekts.
Kann ich Muster für Nicht-JavaScript-Engines testen?
Meistens. Bei einfachen Mustern stimmen die großen Motoren überein. Für erweiterte Funktionen (Lookbehind, atomare Gruppen, Possessivquantifizierer, Unicode-Eigenschafts-Escapes) bestätigen Sie anhand der Dokumentation der Ziel-Engine.
Verarbeitet es sehr große Eingaben?
Bis zu einigen Megabyte klappt das problemlos. Größere Eingaben können den Browser verlangsamen oder zum Absturz bringen, insbesondere bei Mustern, die zum Backtracking neigen.