Regex-Tester


        

    Über dieses Tool

    Der Regex-Tester prüft einen regulären Ausdruck live gegen deinen eigenen Text. Er markiert alle Treffer, zeigt Position und Inhalt jeder Gruppe und berechnet das Ergebnis beim Ersetzen. Zusätzlich wird jeder Bestandteil des Musters in Alltagssprache erklärt. Das Tool ist kostenlos und läuft komplett in deinem Browser; der Test-Text wird nicht gesendet.

    Wofür du es nutzen kannst

    Häufige Fragen

    Was ist ein regulärer Ausdruck?

    Ein regulärer Ausdruck (Regex) ist ein Suchmuster aus Zeichen und Sonderzeichen, das beschreibt, wie ein Text aussehen soll. Damit lassen sich Texte durchsuchen, prüfen und umformen, etwa um Ziffernfolgen oder E-Mail-Adressen zu finden.

    Wird mein Test-Text irgendwohin gesendet?

    Nein. Alles läuft in deinem Browser, nichts wird übertragen. Der normale Teilen-Link enthält nur Muster, Flags und Ersatztext. Der Test-Text ist nur dann im Link, wenn du das ausdrücklich wählst.

    Was bedeuten die Flags g, i, m und s?

    g findet alle Treffer statt nur den ersten, i ignoriert Groß- und Kleinschreibung. m lässt ^ und $ an jedem Zeilenanfang bzw. -ende gelten, s lässt den Punkt auch Zeilenumbrüche treffen. Seltenere Flags wie u, v, y und d sind ebenfalls vorhanden.

    Warum wird nur der erste Treffer ersetzt?

    Ohne das Flag g ersetzt JavaScript nur den ersten Treffer. Aktiviere g, damit alle Treffer ersetzt werden.

    Warum bricht das Tool bei manchen Mustern ab?

    Muster mit verschachtelten Wiederholungen wie (a+)+$ können bei ungünstigem Text exponentiell lange brauchen (katastrophales Backtracking). Das Tool führt Muster deshalb in einem Web Worker aus und beendet ihn nach 500 ms, damit die Seite bedienbar bleibt. Hilfreich ist, Wiederholungen nicht zu verschachteln und Alternativen eindeutig zu machen.

    Funktionieren Muster aus PHP oder Python hier genauso?

    Nicht immer. Das Tool nutzt die JavaScript-Regex-Engine deines Browsers. PHP (PCRE) und Python unterscheiden sich, etwa bei atomaren Gruppen, possessiven Quantoren oder Inline-Flags. Die Code-Ausgabe übersetzt das Wichtigste und markiert Abweichungen als Hinweis.

    Was ist der Unterschied zwischen gierig und lazy?

    Gierige Quantoren nehmen so viel Text wie möglich: <.+> trifft auf <a><b> alles. Mit angehängtem ? wird so wenig wie möglich genommen, <.+?> trifft dann <a> und <b> einzeln.

    Kann ich mit dem Tool E-Mail-Adressen oder URLs verlässlich prüfen?

    Nur grob. Die Beispielmuster sind bewusst einfach, und die Hinweise nennen ihre Grenzen. Echte Adressen sind komplexer; zuverlässig prüft eine Bestätigungsmail, bei URLs der Parser des Systems.

    Hintergrund

    Reguläre Ausdrücke stammen aus der theoretischen Informatik und sind heute in nahezu jeder Programmiersprache, in Texteditoren und in Kommandozeilenwerkzeugen verfügbar. Ein Muster beschreibt eine Menge von Zeichenketten: Literale stehen für sich selbst, Zeichenklassen wie \d (Ziffer) oder [a-z] stehen für ein Zeichen aus einer Menge, Quantoren wie *, + oder {2,5} legen fest, wie oft etwas vorkommt. Anker wie ^, $ und \b beschreiben Positionen statt Zeichen.

    Mit runden Klammern entstehen Gruppen. Sie fassen Teile zusammen, damit ein Quantor auf mehrere Zeichen wirkt, und merken sich den passenden Text als Gruppe 1, 2 und so weiter. Benannte Gruppen der Form (?<name>…) sind lesbarer. Im Ersatztext greifen $1 oder $<name> auf diese Inhalte zu, $& steht für den ganzen Treffer. Ein senkrechter Strich trennt Alternativen.

    Lookaheads und Lookbehinds prüfen, was vor oder nach einer Stelle steht, ohne es zu verbrauchen. So findet (?<=€)\d+ eine Zahl nach einem Euro-Zeichen, ohne das Zeichen in den Treffer aufzunehmen. Quantoren sind standardmäßig gierig und nehmen so viel wie möglich; mit einem angehängten Fragezeichen werden sie lazy.

    Flags verändern die Suche. g liefert alle Treffer, i ignoriert die Schreibweise, m und s steuern Zeilenanker und Punkt. Das Flag u schaltet den Unicode-Modus ein; erst dann funktionieren Eigenschaften wie \p{L}, und Zeichen jenseits von U+FFFF wie Emojis zählen als ein Zeichen. Ohne u bedeutet \w nur a–z, A–Z, 0–9 und Unterstrich, Umlaute gehören nicht dazu.

    Die Syntax unterscheidet sich je nach Engine. JavaScript kennt weder atomare Gruppen noch possessive Quantoren noch Rekursion, PHP nutzt PCRE, Python das Modul re. Ein Muster aus einer Sprache lässt sich deshalb nicht immer unverändert in eine andere übernehmen.

    Eine bekannte Falle ist das katastrophale Backtracking: Bei verschachtelten Wiederholungen wie (a+)+$ probiert die Engine bei einem Fehlschlag exponentiell viele Aufteilungen aus. Dieses Tool rechnet deshalb in einem Web Worker mit Zeitlimit. Außerdem sind reguläre Ausdrücke nicht für alles geeignet: Verschachtelte Formate wie HTML lassen sich damit nicht zuverlässig lesen, hier ist ein Parser die bessere Wahl.

    ⚠️ Bitte beachten

    Die Werkzeuge auf dieser Website werden als kostenloses Hobbyangebot bereitgestellt und dienen ausschließlich zur Information und privaten Nutzung. Für die Richtigkeit, Vollständigkeit oder Eignung der Ergebnisse für einen bestimmten Zweck wird keine Gewähr übernommen. Vor Verwendung der Ergebnisse — insbesondere bei finanziellen, rechtlichen oder sicherheitsrelevanten Entscheidungen — sind diese eigenverantwortlich zu prüfen. Eine Haftung für Schäden aus der Nutzung ist ausgeschlossen, soweit dies gesetzlich zulässig ist.