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.
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.
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.
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.
Geben Sie ein Muster ein, geben Sie eine Testeingabe ein und sehen Sie die hervorgehobenen Übereinstimmungen live.
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.