KeroTools

Reguläre Ausdrücke Testen und Debuggen

Testen Sie ein Regex-Muster und sehen Sie Treffer, Gruppen und Flags live beim Tippen.

//g
2 Treffer
Treffer
Contact us at hello@kerotools.com or support@example.org.

Muster und Stichprobe bleiben auf dem Gerät

Nichts, was später zu löschen wäre

Sicher für echte Betriebsstichproben

Läuft in jedem modernen Browser

So funktioniert es

  1. 1

    Muster eingeben

    Schreiben Sie es ins Feld und setzen Sie die Schalter, die Sie im Betrieb verwenden wollen.

  2. 2

    Repräsentativen Text einfügen

    Nehmen Sie die unangenehmen Fälle auf und Zeichenketten, die gar nicht passen sollen.

  3. 3

    Treffer und Gruppen lesen

    Prüfen Sie Gefundenes und Übersprungenes, bevor Sie das Muster irgendwohin mitnehmen.

Warum dieses Tool

Jeder Treffer live hervorgehoben

Sehen Sie beim Schreiben, was das Muster wirklich fängt, statt es aus der Syntax zu erraten.

Fanggruppen aufgeschlüsselt

Nummerierte und benannte Gruppen je Treffer aufgelistet — dort liegen die meisten Muster tatsächlich falsch.

Sichtbare Schalter

Global, Groß-/Kleinschreibung ignorieren, mehrzeilig und dotall ausdrücklich angezeigt statt in einem Trennzeichen versteckt.

Prüfen Sie auch die Nichttreffer

Fügen Sie die abzulehnenden Zeichenketten neben die zu findenden — das ist die Hälfte, die übersprungen wird.

Nichts wird hochgeladen

Muster und Beispieltext bleiben in Ihrem Browser; echte Protokollzeilen erreichen keinen Server.

Kostenlos, ohne Konto

Keine Anmeldung, kein Wasserzeichen, keine Obergrenze für die Menge.

Ein Muster, das Ihre Beispiele trifft, ist kein Muster, das funktioniert

Fast alle prüfen gleich: Ausdruck schreiben, drei Zeichenketten einfügen, die er fangen soll, sie hervorgehoben sehen, ausliefern. Das bestätigt, dass das Muster nicht völlig kaputt ist, und sagt nichts über den Fehler, der wirklich zubeißen wird. Die interessante Frage ist nicht, was es trifft, sondern was es außerdem trifft — die Eingabe, an die Sie nie gedacht haben und die durchrutscht, und die gültige Eingabe, die es still ablehnt. Ein Muster für eine Telefonnummer, das an vier Beispielen funktioniert, trifft auf eine internationale Vorwahl, eine Durchwahl oder ein Leerzeichen an unerwarteter Stelle. Die lohnende Disziplin lautet daher: Fügen Sie die abzulehnenden Zeichenketten absichtlich neben die zu fangenden ein und prüfen Sie beide Listen jedes Mal, wenn sich das Muster ändert.

Manche Muster können den Prozess anhalten, der sie ausführt

Das ist der Fehler, der einen regulären Ausdruck in einen Ausfall verwandelt, und er lohnt Kenntnis, weil er unsichtbar bleibt, bis er eintritt. Die meisten Maschinen arbeiten mit Rückverfolgung: Scheitert ein Zweig, gehen sie zurück und probieren einen anderen. Bei verschachtelten Quantoren — einer wiederholten Gruppe, die selbst wiederholt wird, der Form `(a+)+` — wächst die Zahl der zu probierenden Anordnungen exponentiell mit der Eingabelänge. Bei einer passenden Zeichenkette ist es sofort fertig; bei einer, die *fast* passt und am Ende scheitert, kann es länger laufen, als das Universum existiert. Angewandt auf Nutzereingaben ist das ein Denial-of-Service-Vektor, und er hat große Dienste zu Fall gebracht: Cloudflare und Stack Overflow haben Nachbetrachtungen veröffentlicht, die einen weltweiten Ausfall genau darauf zurückführen. Enthält Ihr Muster einen Quantor innerhalb einer quantifizierten Gruppe, prüfen Sie es mit einer langen, nicht passenden Zeichenkette, bevor es in die Nähe des Betriebs kommt.

Es gibt keine einzige Sprache für reguläre Ausdrücke

Die Syntax wirkt portabel und ist es nicht. JavaScript, PCRE wie in PHP und Perl, Python, Java, .NET und die POSIX-Werkzeuge setzen je einen anderen Dialekt um, und Muster wandern zwischen ihnen mit stillen Bedeutungsverschiebungen. Rückschau ist eine häufige Falle: In PCRE seit Jahrzehnten vorhanden, erreichte sie JavaScript erst kürzlich — ein Muster, das in Ihrem Editor läuft, kann im Browser scheitern. Go und mehrere andere Systeme nutzen RE2, einen völlig anderen Entwurf: Er garantiert lineare Laufzeit, sodass die oben beschriebene katastrophale Rückverfolgung unmöglich ist — erreicht das aber, indem er Rückverweise und Umgebungsprüfungen vollständig weglässt. Die Syntax benannter Gruppen, Unicode-Eigenschaftsmaskierungen und selbst der Umfang von `\d` unterscheiden sich. Prüfen Sie im Dialekt Ihres Zielsystems, sonst lautet das Ergebnis: hier grün, dort rot.

Gierig als Voreinstellung, und der Punkt ist enger als gedacht

Zwei Voreinstellungen erklären einen großen Teil merkwürdig arbeitender Muster. Quantoren sind gierig: `.*` nimmt, so viel es kann, und gibt nur zurück, was es muss — daher trifft `<.*>` auf `<a><b>` die ganze Zeichenkette statt des ersten Tags. Ein Fragezeichen macht es faul — `<.*?>` — und trifft jedes Tag einzeln, was fast immer gemeint war. Die zweite Voreinstellung: Der Punkt trifft keinen Zeilenumbruch. Bei einzeiligen Beispielen ist das unsichtbar und wird zum Rätsel, sobald das Muster auf ein mehrzeiliges Dokument stößt und am ersten Umbruch stehen bleibt; der dotall-Schalter behebt es. Ein verwandtes Paar gehört auseinandergehalten: Der mehrzeilige Schalter ändert die Bedeutung von `^` und `$`, bindet sie an jede Zeile statt an die ganze Zeichenkette — und tut dem Punkt nichts.

Wofür ein regulärer Ausdruck nicht taugt

Der Rat, HTML nicht mit einem regulären Ausdruck zu zerlegen, wird meist als Scherz erzählt, und der Grund darunter ist präzise: HTML verschachtelt beliebig tief, ein öffnendes Tag seinem schließenden zuzuordnen verlangt Zählen, und ein regulärer Ausdruck hat kein Gedächtnis zum Zählen. Es geht nicht darum, ein besseres Muster zu schreiben — die Sprachklasse ist falsch. E-Mail-Adressen scheitern anders. Die Grammatik in RFC 5322 erlaubt Zeichenketten in Anführungszeichen, Kommentare und Zeichen, mit denen niemand rechnet; ein wirklich konformes Muster reicht daher in die Tausende von Zeichen und kann das Einzige, was zählt, dennoch nicht sagen: ob die Adresse Post empfängt. Praktische Regel für beides: ein echter Parser für strukturierte Auszeichnung, und für eine Adresse prüfen, dass ein `@` mit etwas auf jeder Seite vorhanden ist, und dann eine Bestätigungsnachricht senden.

Warum lokales Prüfen bei dieser Art Text zählt

Das Muster selbst ist selten heikel. Was Sie zum Prüfen einfügen, ist es meist, denn ein regulärer Ausdruck lohnt Prüfung nur an realistischer Eingabe — also echten Protokollzeilen mit echten Adressen darin, einem Export von Kundendatensätzen, den Sie säubern wollen, einer Stichprobe aus dem Betrieb, die Sie gerade deshalb kopiert haben, weil die künstlichen Beispiele das Problem nicht zeigten. Dieses Material macht die Prüfung aussagekräftig, und es ist das Material, das Sie Dritten nicht überlassen würden. Dieses Werkzeug führt den Abgleich auf der Seite aus und überträgt weder Muster noch Stichprobe, nachprüfbar im Netzwerk-Tab der Entwicklerwerkzeuge.

Häufige Fehler, die Sie vermeiden sollten

  • Nur Zeichenketten prüfen, die passen sollen. Der Fehler, der zubeißt, ist die unbedachte Eingabe, die durchrutscht — fügen Sie bei jeder Musteränderung auch die abzulehnenden ein.
  • Einen Quantor in eine quantifizierte Gruppe verschachteln. Formen wie `(a+)+` verfolgen bei einer Beinahe-Übereinstimmung exponentiell zurück — ein Denial-of-Service-Vektor mit dokumentierten weltweiten Ausfällen.
  • Annehmen, das Muster sei portabel. Rückschau, benannte Gruppen und Unicode-Maskierungen unterscheiden sich zwischen JavaScript, PCRE, Python und RE2 — prüfen Sie im Zieldialekt.
  • Vergessen, dass `.` keinen Zeilenumbruch trifft. Ein einzeilig funktionierendes Muster hält am ersten Umbruch eines Dokuments — gewünscht ist dotall, nicht mehrzeilig.
  • HTML zerlegen oder E-Mail prüfen mit einem regulären Ausdruck. Verschachtelung braucht einen Zähler, den er nicht hat, und ein konformes Adressmuster sagt dennoch nicht, ob Post ankommt.

Im Vergleich

KriteriumDieses WerkzeugOnline-PrüferDas Suchfeld eines Editors
Inhalt an einen Server gesendetNieMeistens jaNein
Fanggruppen aufgeschlüsseltJaMeistensSelten
Schalter ausdrücklich gezeigtJaMeistensTeilweise
Läuft ohne geöffnetes ProjektJaJaNein
Konto oder AnmeldungNicht nötigManchmal verlangtNicht nötig
PreisKostenlosKostenlos / BezahltarifeKostenlos / kostenpflichtig

Funktionen

Live-Hervorhebung

Treffer im Beispieltext markiert, während sich das Muster ändert, mit Detail beim Überfahren.

Benannte und nummerierte Gruppen

Jeder Fang je Treffer aufgelistet, damit Sie sehen, welche Gruppe was enthält.

Alle gängigen Schalter

Global, Schreibweise ignorieren, mehrzeilig, dotall, Unicode und haftend — jeder einzeln umschaltbar.

Trefferzahl und Positionen

Wie viele Fundstellen und wo sie beginnen — wichtig beim Ersetzen, nicht nur beim Suchen.

Syntaxfehler erklärt

Eine unbalancierte Klammer oder eine falsche Maskierung nennt das Problem, statt stillschweigend nichts zu treffen.

Verträgt lange Eingaben

Ganze Protokolldateien lassen sich ohne Upload als Prüfgegenstand einfügen.

Nichts zu installieren

Kein Editor, keine Laufzeitumgebung, keine Abhängigkeiten — es läuft auf der Webseite.

Bereit für Arabisch und RTL

Vollständige Oberfläche in acht Sprachen, darunter Arabisch von rechts nach links.

Standardmäßig sicher

Über HTTPS ausgeliefert, ohne Inhaltsverfolgung und ohne Upload an Dritte.

Wer es nutzt

Entwicklerinnen und Entwickler

Ein Muster an echten Beispieldaten zurechtbiegen, bevor es in den Code wandert.

Datenanalyse

Ein Extraktionsmuster für eine unordentliche Spalte bauen und genau sehen, was es verfehlt.

Systemadministration

Einen Protokollfilter an echten Zeilen prüfen statt an erfundenen.

Wer reguläre Ausdrücke lernt

Beobachten, was ein Muster tut, während man es ändert — schneller als darüber zu lesen.

Häufig Gestellte Fragen

Nein. Alles läuft lokal im Browser — Ihr Text wird nie hochgeladen, gespeichert oder geteilt.

Ja — komplett kostenlos, ohne Konto und ohne Limits.