Regex Tester
Regex Tester
Lerne reguläre Ausdrücke zu verstehen und zu testen. Gib ein Muster ein, sieh sofort alle Treffer und erfahre, was dein Regex macht.
Was ist ein regulärer Ausdruck (Regex)?
Stell dir vor, du hast einen langen Text und möchtest alle Telefonnummern darin finden. Mit der normalen Suche (Strg+F) müsstest du jede Nummer einzeln eintippen. Mit Regex sagst du dem Computer stattdessen: „Finde mir alle Muster, die wie eine Telefonnummer aussehen“ – und er liefert dir sofort jeden Treffer.
Ein Regex beschreibt also ein Muster, das auf Text angewendet wird. Man kann damit suchen, prüfen, extrahieren und ersetzen.
\d{3}-\d{4}
bedeutet: „Finde 3 Ziffern, dann einen Bindestrich, dann 4 Ziffern.“→ Findet 123-4567, 555-0199, 987-6543 usw.
Wofür wird Regex verwendet?
Regex begegnet dir überall in der IT. Hier sind die häufigsten Anwendungsfälle – klicke auf eine Karte, um sie direkt im Tester auszuprobieren:
E-Mail-Adressen prüfen
Beim Anmeldeformular prüfen, ob die E-Mail gültig aussieht.
Telefonnummern finden
Aus Log-Dateien oder Texten alle Rufnummern extrahieren.
URLs extrahieren
Alle Links aus einer Webseite oder Text-Datei herausfiltern.
Datum validieren
Prüfen, ob ein Datum im ISO-Format (YYYY-MM-DD) vorliegt.
IPv4-Adressen finden
In Netzwerk-Logs alle gültigen IP-Adressen erkennen.
Hex-Farben finden
Alle Farbcodes wie #3498db aus CSS-Dateien extrahieren.
Passwort-Regeln prüfen
Beim Registrieren prüfen, ob das Passwort sicher genug ist.
HTML-Tags finden
Aus HTML-Code alle Tags wie <div> oder <p> extrahieren.
- Suchfelder: In Editoren wie VS Code mit „Regex-Modus“ (Strg+F → .*-Symbol)
- Programmierung: Um Text zu validieren, zu extrahieren oder zu ersetzen
- Kommandozeile: Werkzeuge wie
grep,sed,awk - Web-Formulare: Validierung von E-Mail, Telefon, PLZ, IBAN
- Log-Analyse: Fehlerzeilen filtern, IPs extrahieren
- Datenverarbeitung: CSV/JSON-Felder säubern und umformen
So benutzt du den Tester
Muster eingeben
Trage deinen regulären Ausdruck zwischen die Schrägstriche /.../ ein.
Zum Beispiel \d+ für „eine oder mehr Ziffern“.
Test-Text einfügen
Schreibe oder füge einen Beispiel-Text ein, in dem gesucht werden soll. Alternativ: Klicke auf einen Anwendungsfall oder ein Beispiel, um sofort zu starten.
Treffer ansehen
Alle Treffer werden im Text farblich hervorgehoben und in der Liste darunter mit Position und Gruppen angezeigt.
Muster verstehen
Über dem Test-Text siehst du eine Erklärung deines Musters in Klartext. So lernst du Schritt für Schritt, was jeder Teil bedeutet.
Regex Live-Tester
Probiere es direkt aus – Ergebnisse aktualisieren sich automatisch beim Tippen.
Regex Cheat-Sheet
Die wichtigsten Bausteine – klicke auf ein Muster, um es in den Tester einzufügen.
Wie funktioniert Regex?
- Ein Regex ist ein Text-Muster, das Zeichen für Zeichen beschreibt, wonach gesucht wird.
- Zeichen wie
\d,\wsind Bausteine für Kategorien (Ziffern, Buchstaben). - Quantoren wie
*,+,{3}geben an, wie oft etwas vorkommen muss.
Angenommen, du möchtest Telefonnummern im Format 123-4567 finden. So baust du den Regex auf:
3 Ziffern am Anfang
Du brauchst genau 3 Ziffern. Also: \d{3}
→ \d = eine Ziffer, {3} = genau 3 Mal
Ein Bindestrich
Der Bindestrich ist ein ganz normales Zeichen: -
→ Bisher: \d{3}-
4 Ziffern am Ende
Zum Schluss noch einmal 4 Ziffern: \d{4}
→ Komplettes Muster: \d{3}-\d{4}
Testen!
Das Muster \d{3}-\d{4} findet jetzt alle Stücke wie 123-4567 in deinem Text.
→ Probiere es oben im Tester aus!
- Punkt ist nicht Punkt:
.in Regex bedeutet „beliebiges Zeichen“ – für einen echten Punkt brauchst du\. - Backslash im String: In JavaScript-Strings muss
\dals"\\d"geschrieben werden. - Kein Anker: Ohne
^und$wird auch ein Teil des Textes akzeptiert. - Greedy vs. Lazy:
.*frisst zu viel Text –.*?stoppt früher. - Groß/Klein: Regex unterscheidet standardmäßig – mit
i-Flag ignorieren.
Geschichte der regulären Ausdrücke
Von der formalen Sprachtheorie zur praktischen Textverarbeitung.
Kleene'sche Hülle
Stephen Kleene beschreibt reguläre Sprachen mit den Operationen Verkettung, Vereinigung und der Kleene'schen Hülle (*). Der Begriff "regulärer Ausdruck" entsteht.
Thompson's Regex
Ken Thompson (Unix-Erfinder) implementiert reguläre Ausdrücke in ed und später grep. Die Thompson-Konstruktion wird zur Grundlage moderner Regex-Engines.
grep und egrep
grep (Global Regular Expression Print) wird zum Standardwerkzeug in Unix. egrep führt erweiterte Syntax ein (+, ?, |, ()). Regex wird aus der Kommandozeile nicht mehr wegzudenken.
Perl und PCRE
Larry Wall veröffentlicht Perl 1.0 mit stark erweiterten Regex-Features. Die PCRE wird zum De-facto-Standard und beeinflusst PHP, Python, Ruby und viele mehr.
JavaScript RegExp
ECMAScript 3 standardisiert RegExp in JavaScript. Die g, i, m Flags werden Standard. Später folgen u (2015), y (2015), s (2018).
Überall präsent
Regex ist in jeder Programmiersprache verfügbar. Es gibt spezialisierte Engines wie RE2 (Google), Hyperscan (Intel) und Oniguruma (Ruby). Moderne Regex-Engines bieten Lookbehind, Named Groups und Unicode-Eigenschaften.
FAQ – Häufige Fragen
Fragen von Anfängern
Regex (regulärer Ausdruck) ist ein Suchmuster für Text. Statt nach einem konkreten Wort zu suchen, beschreibst du ein Muster – zum Beispiel „3 Ziffern, Bindestrich, 4 Ziffern“.
Du brauchst Regex, wenn du:
- Suchen willst, ohne den exakten Text zu kennen (z.B. alle Telefonnummern in einem Text)
- Eingaben validieren musst (E-Mail, PLZ, IBAN beim Anmeldeformular)
- Text umformen willst (aus
Max MustermannmachMustermann, Max) - Logs analysieren willst (alle Fehlerzeilen mit IP-Adresse finden)
Kurz: Immer wenn du Text nicht 1:1 suchst, sondern nach einem Muster.
Die Schreibweise /muster/flags kommt aus JavaScript und ist eine Kurzschreibweise:
- Schrägstriche
/: Umschließen das Muster (damit man Anfang und Ende sieht) - Buchstaben dahinter: Das sind die Flags (Optionen)
Beispiele:
/\d+/g— finde alle Zahlen/hallo/i— finde "hallo", "Hallo", "HALLO"/^start/m— Zeilen, die mit "start" anfangen
In Programmiersprachen schreibt man auch: new RegExp("\\d+", "g"). Der Effekt ist derselbe.
Das sind Kurzschreibweisen für häufige Zeichenklassen:
- \d = digit (Ziffer): 0, 1, 2, ..., 9
- \w = word (Wortzeichen): a-z, A-Z, 0-9 und Unterstrich _
- \s = space (Leerraum): Leerzeichen, Tab, Zeilenumbruch
Mit Großbuchstaben wird die Bedeutung umgekehrt:
- \D = alles außer Ziffern
- \W = alles außer Wortzeichen
- \S = alles außer Leerraum
Eselsbrücke: Kleinbuchstabe = „das Zeichen“, Großbuchstabe = „alles außer dem Zeichen“.
Diese Zeichen sind Quantoren – sie geben an, wie oft etwas vorkommen darf:
- * = 0 bis unendlich Mal („darf auch fehlen“)
- + = 1 bis unendlich Mal („muss mindestens einmal da sein“)
- ? = 0 oder 1 Mal („optional“)
Beispiel mit ab*c:
- findet ac (b fehlt, weil *)
- findet abc (ein b)
- findet abbbc (viele b)
Beispiel mit ab+c:
- findet NICHT ac (mindestens ein b nötig)
- findet abc, abbbc
Sehr wichtig zu verstehen!
- * ist ein Quantor und allein bedeutungslos – er muss sich auf ein Zeichen davor beziehen.
a*heißt: „0 oder mehr a“. - . ist ein Zeichen (beliebiges Zeichen).
.*heißt: „0 oder mehr beliebige Zeichen“ – also alles.
Beispiel: Du willst alles zwischen <h1> und </h1> finden:
- Falsch:
<h1>*</h1>— Sternchen bezieht sich auf das>davor, matcht nichts Sinnvolles - Richtig:
<h1>.*</h1>— findet die komplette Überschrift
Die 5 häufigsten Ursachen:
- Sonderzeichen nicht escaped:
.bedeutet „beliebiges Zeichen“. Für einen echten Punkt:\. - Kein g-Flag: Ohne
gwird nur der erste Treffer gefunden. - Groß-/Kleinschreibung: Ohne
i-Flag wirdHalloundhallounterschieden. - Greedy-Matching:
.*frisst zu viel. Verwende.*?(lazy). - Anker fehlen:
\d{3}findet auch die ersten 3 Ziffern aus12345. Mit^\d{3}$nur genau 3.
Ein einfacher Regex:
^[^\s@]+@[^\s@]+\.[^\s@]+$
Bedeutung Schritt für Schritt:
^— Zeilenanfang[^\s@]+— irgendwas, das kein Leerzeichen und kein @ ist@— das @-Zeichen[^\s@]+— Domain-Name (wieder kein Leerzeichen/@)\.— ein echter Punkt[^\s@]+— Top-Level-Domain$— Zeilenende
Wichtig: Perfekte E-Mail-Validierung mit Regex ist nicht möglich (RFC 5322 ist zu komplex). Der einfache Regex deckt 99% der Fälle ab.
Gruppen mit runden Klammern (...) fassen mehrere Zeichen zusammen und erfassen sie separat.
Beispiel: (\d{4})-(\d{2})-(\d{2})
- Findet 2024-01-15
- Erfasst Gruppe 1: 2024 (Jahr)
- Erfasst Gruppe 2: 01 (Monat)
- Erfasst Gruppe 3: 15 (Tag)
Gruppen kannst du später im Code einzeln abfragen:
match[1] = Jahr, match[2] = Monat, match[3] = Tag.
Es gibt auch non-capturing groups (?:...) – die fassen nur zusammen, erfassen aber nicht.
ReDoS (Regular Expression Denial of Service) entsteht durch verschachtelte Quantoren, die exponentiell Zeit brauchen.
Gefährliche Muster:
(a+)+b— zwei + hintereinander auf überlappende Zeichen(a|a)+b— Alternation mit gleichen Teilen(.*a){10}— quantifizierte Gruppe mit .*
Sichere Muster:
a+b— kein verschachteltes +[^a]+— Zeichenklasse statt (a|b|c)- Teste kritische Regex immer mit einem ReDoS-Checker
Faustregel: Kein + oder * direkt auf eine Gruppe, die selbst + oder * enthält.
Ja! Regex ist überall präsent:
- VS Code: Strg+F →
.*-Symbol aktivieren - Excel: In „Suchen & Ersetzen“ mit Wildcards (eingeschränkt) oder VBA mit vollem Regex
- Google Sheets:
REGEXMATCH,REGEXEXTRACT,REGEXREPLACE - Notepad++: Strg+H → Suchmodus „Regulärer Ausdruck“
- Linux-Terminal:
grep -E,sed -E,awk - Sublime/Atom: Regex-Suche in allen Editoren
- Browser-Konsole:
text.match(/regex/)
Zusammenfassung
Das Wichtigste in Kürze
- Regex = Muster zum Suchen, Prüfen, Extrahieren von Text
- \d, \w, \s = Ziffer, Wortzeichen, Leerraum
- *, +, ? = 0+, 1+, 0/1-mal wiederholt
- ^ und $ = Anfang und Ende der Zeile
- (...) = Gruppe zum Erfassen
- | = Oder (Alternative)
- Flags:
g= alle Treffer,i= Groß/Klein egal,m= mehrzeilig - Use Cases: E-Mail-Validierung, Log-Analyse, Datenextraktion
- Vorsicht: ReDoS durch verschachtelte Quantoren vermeiden
- Tipp: Von einfach nach komplex – Stück für Stück aufbauen und testen
Weitere Tools
Vollständige Referenz aller Regex-Syntax-Elemente mit Beispielen.
Zum ToolFormatiere und validiere JSON mit Syntax-Highlighting.
Zum ToolMD5, SHA-1, SHA-256 und SHA-512 für Text und Dateien.
Zum ToolGeneriere UUIDs v1, v4, v5 und v7 für deine Anwendungen.
Zum Tool