Testen Sie reguläre Ausdrücke mit Echtzeitabgleich, Erfassungsgruppen und Ersetzungen. Enthält einen Spickzettel und eine Bibliothek mit gängigen Mustern.
//g
Spielergebnisse
0 Übereinstimmungen0 Gruppen
Geben Sie oben ein Regex-Muster und eine Testzeichenfolge ein, um Übereinstimmungen zu sehen.
Gruppen erfassen
Spiel
Pos
Vollständige Übereinstimmung
Gruppen
Ersetzen
Geben Sie ein Ersetzungsmuster ein, um Ergebnisse anzuzeigen.
Klicken Sie auf ein beliebiges Muster, um es mit einer Beispieltestzeichenfolge in den Tester zu laden.
5 Min. Lesezeit3 Schritte6 Begriffe2 Beispiele5 häufig gestellte Fragenmatches = RegExp.exec(test_string) (wird bei aktiviertem g-F…
📋
Schritt für Schritt
So verwenden Sie diesen Rechner
3 Schritte▸
1
Geben Sie Muster und Flags ein
Geben Sie Ihren regulären Ausdruck ein und schalten Sie nach Bedarf Flags wie „Global“, „Groß-/Kleinschreibung nicht berücksichtigen“ und „Mehrzeilig“ um.
2
Testeingabe einfügen
Fügen Sie Beispieltext in den Testzeichenfolgenbereich ein und beobachten Sie die Hervorhebung der Übereinstimmungen live, während das Muster ausgeführt wird.
3
Gruppen prüfen und kopieren
Überprüfen Sie die Erfassungsgruppen und benannten Gruppen jedes Spiels im Ergebnisbereich und kopieren Sie das Arbeitsmuster in Ihre Zwischenablage.
⚡
Grundlagen
Formel und Methodik
3 Formeln▸
Spielausführung
matches = RegExp.exec(test_string) (wird bei aktiviertem g-Flag wiederholt)
Verwendet die integrierte JavaScript-RegExp-Engine des Browsers (ECMAScript 2018+). Globales Flag gibt alle Übereinstimmungen zurück; ohne es nur das erste Spiel.
Gruppen erfassen
groups_count = match.length − 1 (when a match is found)
Der Tester meldet die indizierten Erfassungsgruppen, die vom JavaScript-Übereinstimmungsergebnis zurückgegeben werden, sowie benannte Gruppen, wenn sie mit der Syntax „(?<name>...)“ verwendet werden. Nicht erfassende Gruppen wie „(?:...)“ werden nicht gezählt.
Vorgang ersetzen
result = test_string.replace(pattern, replacement)
Wendet den regulären Ausdruck als Ersetzungsvorgang an. Die Ersatzzeichenfolge unterstützt „$1“, „$2“ für nummerierte Gruppen und „$<name>“ für benannte Gruppen, mit „$&“ für die gesamte Übereinstimmung.
📖
Glossar
Wichtige Begriffe erklärt
6 Begriffe▸
Regulärer AusdruckEine Zeichenfolge, die ein Suchmuster definiert und zum Abgleich, Extrahieren und Ersetzen von Zeichenfolgen verwendet wird. Die meisten modernen Sprachen unterstützen Regex mit geringfügigen Dialektunterschieden.
FlaggeEin Modifikator, der das Musterverhalten ändert: „g“ für globale Übereinstimmung, „i“ für Groß- und Kleinschreibung, „m“ für mehrzeilige Übereinstimmung, „s“ für dotAll und „u“ für Unicode-fähige Übereinstimmung.
Capture-GruppeEin in Klammern „(...)“ eingeschlossenes Muster, das die übereinstimmende Teilzeichenfolge zur späteren Referenz erfasst. Zugriff als „$1“, „$2“ in Ersetzungen und „match[1]“, „match[2]“ im Code.
Benannte GruppeEine Capture-Gruppe mit einem Namen in der Schreibweise „(?<name>...)“, auf die in JavaScript als „match.groups.name“ oder in Ersetzungszeichenfolgen als „$<name>“ zugegriffen wird.
AnkerEine Behauptung mit der Breite Null, die eher einer Position als einem Zeichen entspricht. Gängige Anker sind „^“ (Anfang der Zeichenfolge/Zeile), „$“ (Ende der Zeichenfolge/Zeile), „\b“ (Wortgrenze) und „\B“ (Nicht-Wortgrenze).
ZurückverfolgenDer Prozess der Regex-Engine, alternative Übereinstimmungspfade auszuprobieren, wenn der aktuelle Pfad fehlschlägt. Übermäßiges Backtracking führt zu einem „katastrophalen Backtracking“.
👥
Beispiele
Beispiele aus der Praxis
2 Praxisbeispiele▸
📧
Entwickler – E-Mail-Validierung
Ein Entwickler debuggt eine Formularvalidierungs-Regex für E-Mail-Adressen, die Standardformate akzeptieren, aber offensichtlich fehlerhafte Eingaben ablehnen sollte.
Das Muster stimmt mit „[email protected]“ und „[email protected]“ überein und weist „bad..email@“ zurück. Live-Hervorhebung bestätigt, dass die Regex die üblichen Randfälle (plus Tags, Subdomains) verarbeitet und dabei fehlerhafte Eingaben abfängt.
📝
Datenanalyst – Daten extrahieren
Ein Datenanalyst extrahiert Daten im ISO-Format aus unstrukturiertem Protokolltext mithilfe benannter Erfassungsgruppen, um eine strukturierte Ausgabe zu erstellen.
Muster (?<Jahr>\d{4})-(?<Monat>\d{2})-(?<Tag>\d{2})Flaggen gTestzeichenfolge Logeintrag vom 15.03.2024 und ein weiterer vom 02.11.2024...
Findet zwei Übereinstimmungen, wobei jede die benannten Gruppen „Jahr“, „Monat“ und „Tag“ offenlegt. Der Analyst kopiert das Muster in ein Python- oder JavaScript-Skript, um es in einer vollständigen Protokolldatei auszuführen und eine strukturierte Liste von Datumsdatensätzen zu erstellen, die für Zeitreihen bereit sind.
🔗
Quellenangabe
Diesen Rechner zitieren
APA und MLA▸
Verwenden Sie eines dieser Formate, um diesen Rechner in einer Arbeit, einem Bericht oder einer Literaturliste zu zitieren.
Reguläre Ausdrücke sind eines der mächtigsten und am meisten gehassten Werkzeuge in der Programmierung – mächtig, weil sie komplexe String-Matching-Logik in wenigen Zeichen zusammenfassen, und gehasst, weil diese Zeichen bekanntermaßen unlesbar und fehleranfällig sind. Die Beherrschung von Regex zahlt sich in jeder Sprache und fast jeder technischen Rolle aus: Suchen und Ersetzen in Editoren, Formularvalidierung, Protokollanalyse, Datenextraktion, Routing-Regeln und Textmanipulation über die Befehlszeile mit Tools wie grep und sed. Die folgenden Abschnitte behandeln die Kernsyntax, die jeder Entwickler kennen sollte, die allgemeinen Muster, die in der realen Arbeit auftreten, und die Testdisziplin, die funktionierende Regex von der beängstigenden Art unterscheidet.
Die Kernsyntax, die jeder Entwickler kennen sollte
▸
Die Regex-Syntax sieht einschüchternd aus, aber die Kernelemente sind endlich und es lohnt sich, sie sich zu merken. Zeichenklassen sind die Grundlage: „\d“ entspricht jeder Ziffer, „\w“ entspricht jedem Wortzeichen (Buchstaben, Ziffern, Unterstrich), „\s“ entspricht jedem Leerzeichen und ihre Großbuchstabenversionen („\D“, „\W“, „\S“) entsprechen der Umkehrung. Eckige Klammern definieren benutzerdefinierte Zeichenklassen: „[abc]“ entspricht jedem dieser drei Zeichen, „[a-z]“ entspricht jedem Kleinbuchstaben, „[^0-9]“ entspricht allem außer Ziffern. Quantifizierer geben an, wie oft ein Muster übereinstimmen soll: „*“ ist null oder mehr, „+“ ist eins oder mehr, „?“ ist null oder eins (optional), „{3}“ ist genau 3, „{3,5}“ ist 3 bis 5, „{3,}“ ist 3 oder mehr. Quantifizierer sind standardmäßig gierig und stimmen so weit wie möglich überein. Das Hinzufügen von „?“ macht sie faul („*?“, „+?“). Anker stimmen eher mit Positionen als mit Zeichen überein: „^“ ist der Anfang der Zeichenfolge (oder Zeile mit „m“-Flag), „$“ ist das Ende der Zeichenfolge, „\b“ ist eine Wortgrenze. Beim Gruppieren werden Klammern „(...)“ für beide Gruppierungsoperatoren verwendet und der übereinstimmende Text zur späteren Referenz erfasst. Diese Kernbausteine decken 90 % des praktischen Regex-Bedarfs ab, und der größte Teil des Mysteriums von Regex löst sich auf, sobald Sie dieses Vokabular verinnerlicht haben. Alles andere sind Variationen dieser Themen.
Häufige Muster, die in der realen Arbeit auftreten
▸
Einige Muster tauchen in Projekten so häufig auf, dass es sich lohnt, sie als Vorlagen auswendig zu lernen. E-Mail-Adresse (lose Validierung): `/^[\w.+-]+@[\w-]+\.[\w.-]+$/` – gut genug für die Formularfilterung, obwohl der formal korrekte E-Mail-Regex für menschliches Schreiben unmöglich lang ist. URL-Übereinstimmung: „/https?:\/\/[^\s]+/g“ – gut zum Extrahieren von URLs aus Text, obwohl es mit nachgestellter Satzzeichen übereinstimmt, die Sie kürzen möchten. US-Telefonnummern: `/\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}/` – behandelt Klammern, Bindestriche und Leerzeichen als optionale Trennzeichen. IP-Adressen (IPv4): `/\b(?:\d{1,3}\.){3}\d{1,3}\b/` – einfach, lehnt 999.999.999.999 jedoch nicht ab (was eine hässliche Wertbeschränkungslogik erfordert). ISO-Daten: „/\d{4}-\d{2}-\d{2}/“ mit optionalen benannten Gruppen „(?\d{4})-(?\d{2})-(?\d{2})“ zur Extraktion. Hex-Farben: `/#[0-9a-f]{3,8}\b/i`. Kreditkartennummer (lose): „/\b\d{13,19}\b/“ – nur zur Formatprüfung, nicht zur Gültigkeit. UUID: „/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i“. Die Musterbibliothek auf den meisten Regex-Sites erweitert diesen Satz erheblich, und das Kopieren eines kampferprobten Musters ist fast immer besser, als ein eigenes Muster für gängige Formate zu schreiben. Benennen Sie Ihre Erfassungsgruppen, wenn Sie Daten extrahieren müssen – die Syntax „(?...)“ macht den resultierenden Code wesentlich lesbarer als „match[1]“ / „match[2]“.
Disziplin testen: Wie man Regex schreibt, die tatsächlich funktioniert
▸
Der Unterschied zwischen einer Regex, die zuverlässig funktioniert, und einer Regex, die die Produktion unterbricht, besteht darin, dass die Disziplin auf die Probe gestellt wird. Vier Praktiken unterscheiden die beiden konsequent. Testen Sie zunächst immer positive Fälle (Eingaben, die übereinstimmen sollten) UND negative Fälle (Eingaben, die nicht übereinstimmen sollten). Es ist einfach, ein Muster zu erstellen, das mit allem übereinstimmt, was Sie wollen, und dann festzustellen, dass es auch mit Eingaben übereinstimmt, die Sie nicht wollten. Ein Testsatz mit 10 positiven und 10 negativen Ergebnissen erkennt die meisten Probleme. Zweitens testen Sie speziell gegen Randfälle: leere Zeichenfolgen, einzelne Zeichen, sehr lange Zeichenfolgen, Unicode-Zeichen, Zeichenfolgen nur mit Leerzeichen, Zeichenfolgen mit Zeilenumbrüchen, Zeichenfolgen mit speziellen Regex-Zeichen. Regex-Muster weisen an diesen Rändern ein überraschendes Verhalten auf, und die Produktionseingabe wird schließlich alle davon umfassen. Drittens: Hüten Sie sich vor katastrophalen Rückschlägen. Ein Muster wie „(a+)+b“, das mit „aaaaaaaaaaaaaaaaaX“ abgeglichen wird, kann exponentielle Zeit in Anspruch nehmen, da die Engine jede mögliche Gruppierung der „a“ ausprobiert. Testen Sie jedes komplexe Muster anhand böswillig aussehender Eingaben (lange Zeichenfolgen mit sich wiederholenden Zeichen) und beobachten Sie die Ausführungszeit. ReDoS-Angriffe (Regular Expression Denial of Service) nutzen genau diese Schwachstelle in schlecht gestalteten Mustern aus, die bei der Eingabevalidierung verwendet werden. Viertens: Verwenden Sie während der Entwicklung einen echten Regex-Tester (diesen hier oder ein Editor-Plugin), anstatt Versuch und Irrtum im Produktionscode auszuprobieren – das visuelle Feedback, wenn Sie Übereinstimmungen während der Eingabe live hervorheben, führt zu Arbeitsmustern, die fünf- bis zehnmal schneller funktionieren, als wenn fehlgeschlagene Tests nachträglich behoben werden.
❓
Fragen
Häufig gestellte Fragen
5 Fragen▸
Ist die Nutzung des Regex-Testers kostenlos?+
Ja – der Regex-Tester ist völlig kostenlos und erfordert keine Anmeldung. Der gesamte Mustervergleich wird mithilfe der integrierten JavaScript-RegExp-Engine lokal in Ihrem Browser ausgeführt, sodass keine Testeingaben Ihr Gerät verlassen.
Welchen Regex-Dialekt verwendet dieser Tester?+
Dieser Tester verwendet den JavaScript-Regex-Dialekt (ECMAScript 2018+), der PCRE, dem Python-Modul „re“ oder dem Regex von Java nahe kommt, aber nicht mit diesen identisch ist. Funktionen wie benannte Gruppen (`(?<name>...)`) und Lookbehinds funktionieren, aber PCRE-spezifische Funktionen wie rekursive Muster und Possessivquantifizierer werden nicht unterstützt.
Kann ich meinen regulären Ausdruck speichern oder teilen?+
Ja – klicken Sie auf „Teilen“, um eine URL mit Ihrem Muster, Ihren Flags und Ihrer Testzeichenfolge zu generieren, die zum Teilen mit Teamkollegen vorab ausgefüllt ist. Klicken Sie auf „Kopieren“, um nur das Muster in Ihre Zwischenablage zu kopieren und in den Code einzufügen. Beide Vorgänge erfolgen lokal ohne Server-Roundtrip.
Funktioniert der Regex-Tester auf Mobilgeräten?+
Ja – der Tester reagiert vollständig und funktioniert auf Telefonen, Tablets und Desktops. Die Ergebnisse werden sofort aktualisiert, während Sie tippen, längere Muster lassen sich jedoch einfacher auf einer physischen Tastatur mit vollem Zugriff auf Regex-Sonderzeichen erstellen.
Wie vermeide ich katastrophale Rückschritte?+
Vermeiden Sie verschachtelte Quantoren wie „(a+)+“, vereinfachen Sie mehrdeutige Alternativen und testen Sie komplexe Muster anhand langer Zeichenfolgen sich wiederholender Zeichen, um Verlangsamungen zu erkennen. Wenn ein Muster bei einer realistischen Eingabe mehr als ein paar hundert Millisekunden benötigt, schreiben Sie es neu, um es deterministischer zu gestalten.
📄
Speichern und teilen
Erhalten Sie ein PDF im Calculover-Design mit Ihren Ergebnissen
Laden Sie sofort ein einseitiges PDF mit Ihren Ergebnissen herunter. Wenn Sie Ihre E-Mail-Adresse angeben, erhalten Sie gelegentlich Tipps zu unseren Rechnern — kein Spam. Sie können sich jederzeit abmelden. Datenschutz.
🧭
Nächste Schritte
Weitere Rechner entdecken
Ähnliche Rechner
Ratgeber und Artikel
amp; oder lassen Sie das Feld leer, um Übereinstimmungen zu löschen).\u003c/p>","es":"\u003cp class=\"empty-state\">Keine Übereinstimmungen zum Entfernen vorhanden. Geben Sie eine Ersatzzeichenfolge ein (verwenden Sie $1, amp; oder lassen Sie das Feld leer, um Übereinstimmungen zu löschen).\u003c/p>"},"calc-locale.bulk.tools.regex-tester.981f392d":{"hash":"981f392d","de":"\u003cp class=\"empty-state\">Fehler ersetzen: ","es":"\u003cp class=\"empty-state\">Fehler ersetzen: "},"calc-locale.bulk.tools.regex-tester.55950aee":{"hash":"55950aee","de":"\u003c/p>","es":"\u003c/p>"},"calc-locale.bulk.tools.regex-tester.84fa6af1":{"hash":"84fa6af1","de":"warnen","es":"warnen"},"calc-locale.bulk.tools.regex-tester.84683540":{"hash":"84683540","de":"Nichts zum Kopieren","es":"Nichts zum Kopieren"},"calc-locale.bulk.tools.regex-tester.5f83d2d3":{"hash":"5f83d2d3","de":"Führen Sie zunächst einen Austausch durch.","es":"Führen Sie zunächst einen Austausch durch."},"calc-locale.bulk.tools.regex-tester.3a5fbf10":{"hash":"3a5fbf10","de":"Erfolg","es":"Erfolg"},"calc-locale.bulk.tools.regex-tester.4c8421ac":{"hash":"4c8421ac","de":"Kopiert!","es":"Kopiert!"},"calc-locale.bulk.tools.regex-tester.3c2d7a53":{"hash":"3c2d7a53","de":"Ersetzen Sie das in die Zwischenablage kopierte Ergebnis.","es":"Ersetzen Sie das in die Zwischenablage kopierte Ergebnis."},"calc-locale.bulk.tools.regex-tester.a1f1d2e1":{"hash":"a1f1d2e1","de":"Geben Sie zunächst ein Regex-Muster ein.","es":"Geben Sie zunächst ein Regex-Muster ein."},"calc-locale.bulk.tools.regex-tester.20a9abb3":{"hash":"20a9abb3","de":"Regex in die Zwischenablage kopiert.","es":"Regex in die Zwischenablage kopiert."},"calc-locale.bulk.tools.regex-tester.bac35c2c":{"hash":"bac35c2c","de":"Charakterklassen","es":"Charakterklassen"},"calc-locale.bulk.tools.regex-tester.fb46d5e5":{"hash":"fb46d5e5","de":"Anker","es":"Anker"},"calc-locale.bulk.tools.regex-tester.efa363b6":{"hash":"efa363b6","de":"Quantifizierer","es":"Quantifizierer"},"calc-locale.bulk.tools.regex-tester.f11969bf":{"hash":"f11969bf","de":"Gruppen & Referenzen","es":"Gruppen & Referenzen"},"calc-locale.bulk.tools.regex-tester.f8d1d8cb":{"hash":"f8d1d8cb","de":"Schauen Sie sich um","es":"Schauen Sie sich um"},"calc-locale.bulk.tools.regex-tester.4222ebcc":{"hash":"4222ebcc","de":"Flaggen","es":"Flaggen"},"calc-locale.bulk.tools.regex-tester.1dbfab74":{"hash":"1dbfab74","de":"Sonderzeichen","es":"Sonderzeichen"},"calc-locale.bulk.tools.regex-tester.e042c08a":{"hash":"e042c08a","de":"Muster geladen","es":"Muster geladen"},"calc-locale.bulk.tools.regex-tester.4faef743":{"hash":"4faef743","de":"ist bereit zum Testen.","es":"ist bereit zum Testen."},"calc-locale.audit.regex-tester.f1f487f3":{"hash":"f1f487f3","de":"E-Mail-Adresse","es":"E-Mail-Adresse"},"calc-locale.audit.regex-tester.9541fecb":{"hash":"9541fecb","de":"URL (HTTP/HTTPS)","es":"URL (HTTP/HTTPS)"},"calc-locale.audit.regex-tester.933236c7":{"hash":"933236c7","de":"Telefonnummer (USA)","es":"Telefonnummer (USA)"},"calc-locale.audit.regex-tester.c2bfac12":{"hash":"c2bfac12","de":"IPv4-Adresse","es":"IPv4-Adresse"},"calc-locale.audit.regex-tester.73fd4e20":{"hash":"73fd4e20","de":"Datum (JJJJ-MM-TT)","es":"Datum (JJJJ-MM-TT)"},"calc-locale.audit.regex-tester.1f67418a":{"hash":"1f67418a","de":"Hex-Farbcode","es":"Hex-Farbcode"},"calc-locale.audit.regex-tester.20a14859":{"hash":"20a14859","de":"HTML-Tags","es":"HTML-Tags"},"calc-locale.audit.regex-tester.420a5a33":{"hash":"420a5a33","de":"Kreditkartennummer","es":"Kreditkartennummer"},"calc-locale.audit.regex-tester.1c08d4d9":{"hash":"1c08d4d9","de":"Benutzername","es":"Benutzername"},"calc-locale.audit.regex-tester.33506d33":{"hash":"33506d33","de":"Starkes Passwort","es":"Starkes Passwort"},"calc-locale.audit.regex-tester.fa398fe0":{"hash":"fa398fe0","de":"Leerraum entfernen","es":"Leerraum entfernen"},"calc-locale.audit.regex-tester.75bac07f":{"hash":"75bac07f","de":"Doppelte Wörter","es":"Doppelte Wörter"}});