Regex Tester Online – Reguläre Ausdrücke testen & verstehen
Regex Tester Online
Reguläre Ausdrücke testen, debuggen & lernen
Der vollständigste kostenlose Regex Tester auf Deutsch: Live-Highlighting, Capture Groups, Suchen & Ersetzen, Regex-Erklärungen, gespeicherte Muster, URL-Sharing und ein komplettes Lern-Tutorial – direkt im Browser.
^(?=.*[A-Z])(?=.*\d).{8,}$ bedeutet? Oder warum dein Regex manchmal ewig läuft? Dieser Guide erklärt reguläre Ausdrücke von Grund auf — Schritt für Schritt, von Anfänger bis Profi. Mit Live-Beispielen die du direkt im Tool oben ausprobieren kannst.
- Was ist Regex? (Anfänger)
- Level 1: Grundlagen
- Level 2: Zeichenklassen & Quantifizierer
- Level 3: Gruppen, Flags & Lookaheads
- Level 4: Fortgeschritten & Performance
- Praxisbeispiele mit Vor/Nachher
- Regex-Bibliothek (Copy & Paste)
- Häufige Fehler vermeiden
- So benutzt du den Regex Tester
- Regex vs. andere Methoden
- FAQ – Häufige Fragen
Was ist Regex? — Einfach erklärt für Anfänger
Stell dir vor, du suchst in einem riesigen Wörterbuch nach allen Wörtern, die mit „A" beginnen und auf „ung" enden. Du könntest jede Seite manuell durchsuchen — oder du gibst einem superschlauen Assistenten eine kurze Beschreibung: "Finde mir alle Wörter, die mit A starten und mit ung enden, egal was dazwischen steht."
Genau das ist ein regulärer Ausdruck (Regex): eine kompakte Beschreibung eines Textmusters. Anstatt jeden möglichen Text explizit aufzuschreiben, beschreibst du das Muster — und der Computer findet alle passenden Textstellen.
Analogie: Regex ist wie ein Platzhalter-System im Dateimanager. *.jpg findet alle JPEG-Dateien. Regex ist dasselbe Prinzip — nur viel mächtiger und für beliebige Texte.
Warum wurde Regex erfunden?
In den 1950er Jahren entwickelte der Mathematiker Stephen Kleene die theoretische Grundlage für reguläre Ausdrücke. Ken Thompson integrierte sie in den Unix-Editor ed — und seit den 1970ern ist Regex aus der Softwareentwicklung nicht mehr wegzudenken.
Der Grund: Textverarbeitung ist in der Informatik allgegenwärtig. Log-Dateien auswerten, Formulareingaben validieren, Daten transformieren, Code-Suche — überall steckt Mustererkennung. Regex macht das in einer Zeile, wofür sonst 50 Zeilen Code nötig wären.
Dein erstes Regex-Muster
Der einfachste Regex ist ein normaler Text — Hallo findet genau das Wort „Hallo" in einem Text. Kein Zauberwerk. Jedes Zeichen matcht sich selbst, wenn es kein Sonderzeichen ist.
g (global) findet alle Vorkommen — nicht nur das erste. Ohne g würde nur der erste „Hallo"-Treffer gefunden.Level 1: Grundlegende Muster & Sonderzeichen
Bestimmte Zeichen haben in Regex eine besondere Bedeutung. Das sind die wichtigsten:
Der Punkt . — Das Wildcard-Zeichen
Ein Punkt . matcht jedes einzelne Zeichen — außer einem Zeilenumbruch. a.c findet „abc", „a2c", „axc", aber auch „a c" (mit Leerzeichen).
ac wird nicht gefunden (kein Zeichen zwischen a und c). abbc auch nicht (zwei Zeichen zwischen a und c, aber . matcht nur eines).Ankerpunkte: ^ und $
^ matcht den Anfang eines Strings (oder einer Zeile mit dem m-Flag). $ matcht das Ende. Das ist entscheidend für vollständige Validierungen.
12345
999
2023
12345
999
2023
^ und $ plus m-Flag findet ^\d{4}$ nur Zeilen mit genau 4 Ziffern. 12345 (5 Ziffern) und 999 (3 Ziffern) werden ignoriert.Zeichenklassen [abc] und Bereiche [a-z]
Eckige Klammern definieren eine Menge von Zeichen. [aeiou] findet jeden Vokal. [a-z] findet jeden Kleinbuchstaben. [^aeiou] (mit ^ innerhalb der Klammern) findet alles außer Vokalen.
[A-Z] = ein Großbuchstabe, [a-z]+ = ein oder mehr Kleinbuchstaben danach. GmbH wird nicht gefunden weil auf G nicht nur Kleinbuchstaben folgen.Level 2: Shortcodes, Quantifizierer & Wortgrenzen
Shortcodes: \d, \w, \s
JavaScript-Regex kennt praktische Kurzschreibweisen:
\d= Ziffer (equivalent zu[0-9])\D= alles außer einer Ziffer\w= Wortzeichen (Buchstaben, Ziffern, Unterstrich) =[A-Za-z0-9_]\W= alles außer Wortzeichen\s= Whitespace (Leerzeichen, Tab, Zeilenumbruch)\S= alles außer Whitespace\b= Wortgrenze (zwischen \w und \W)
Quantifizierer: Wie oft?
Quantifizierer geben an, wie oft ein Zeichen oder eine Gruppe vorkommen soll:
| Quantifizierer | Bedeutung | Beispiel | Trifft auf |
|---|---|---|---|
* | 0 oder mehr | ab*c | ac, abc, abbc, abbbc |
+ | 1 oder mehr | ab+c | abc, abbc (nicht ac) |
? | 0 oder 1 (optional) | colou?r | color, colour |
{n} | Genau n-mal | \d{4} | 2024, 1999 |
{n,} | Mindestens n-mal | \d{2,} | 12, 123, 12345 |
{n,m} | Zwischen n und m | \d{2,4} | 12, 123, 1234 |
(\+49|0) matcht die Ländervorwahl oder führende 0. [\s\-]? erlaubt optionale Trennzeichen. \d{4,10} matcht 4–10 Ziffern der Rufnummer.Level 3: Gruppen, Flags & Lookaheads
Capture Groups (abc)
Runde Klammern gruppieren Teile eines Regex und speichern den gematchten Text als Capture Group. Du kannst diese Gruppen danach mit $1, $2 usw. verwenden — perfekt für Textumformungen.
$1 = Jahr, $2 = Monat, $3 = Tag. Im Ersetzen-Tab kannst du $3.$2.$1 eingeben um die Reihenfolge umzukehren.Non-Capturing Group (?:abc)
Manchmal willst du gruppieren, aber den Inhalt nicht speichern. (?:https?://) gruppiert https:// und http://, ohne eine Capture Group zu erzeugen. Das ist effizienter.
Named Capture Groups (?<name>abc)
In modernem JavaScript kannst du Gruppen benennen: (?<jahr>\d{4})-(?<monat>\d{2}). Das macht komplexe Regex viel lesbarer und wartbarer.
Die Regex-Flags im Detail
| Flag | Name | Wirkung | Wann benutzen? |
|---|---|---|---|
g | global | Findet alle Treffer, nicht nur den ersten | Fast immer – Standard für die meisten Anwendungen |
i | ignoreCase | /hallo/i findet „HALLO", „Hallo", „hAlLo" | Bei Suche ohne Groß/Klein-Unterschied |
m | multiline | ^ und $ matchen Zeilenanfang/-ende statt Stringanfang/-ende | Bei mehrzeiligem Text mit zeilenweiser Suche |
s | dotAll | . matcht auch \n (Newline) | Wenn Muster über mehrere Zeilen gehen |
u | unicode | Aktiviert vollständige Unicode-Unterstützung | Bei Texten mit Emoji oder seltenen Zeichen |
Lookahead und Lookbehind — ohne zu matchen
Lookaheads und Lookbehinds sind Zero-Width Assertions — sie prüfen ob etwas vor oder nach der aktuellen Position steht, ohne diese Zeichen selbst zu matchen.
| Syntax | Typ | Bedeutung | Beispiel |
|---|---|---|---|
(?=abc) | Pos. Lookahead | Gefolgt von abc | \d+(?= €) findet Zahlen vor „ €" |
(?!abc) | Neg. Lookahead | NICHT gefolgt von abc | \d+(?! km) findet Zahlen die nicht vor „ km" stehen |
(?<=abc) | Pos. Lookbehind | Vorgegangen von abc | (?<=€ )\d+ findet Zahlen nach „€ " |
(?<!abc) | Neg. Lookbehind | NICHT vorgegangen von abc | (?<!#)\w+ findet Wörter ohne # davor |
passwort
PASS1234
Sicher#1Pass
passwort ❌
PASS1234 ❌
Sicher#1Pass ❌
(?=.*X) ist ein Lookahead der fordert: irgendwo im String muss X vorkommen. So kannst du mehrere Bedingungen kombinieren ohne die Reihenfolge zu erzwingen.Level 4: Greedy vs. Lazy, Performance & Katastrophales Backtracking
Greedy vs. Lazy Quantifizierer
Standardmäßig sind alle Quantifizierer greedy (gierig) — sie matchen so viel wie möglich. Ein ? hinter dem Quantifizierer macht ihn lazy (faul) — er matcht so wenig wie möglich.
<b>fett</b> und <i>kursiv</i><.*>
<.*?>
⚠️ Katastrophales Backtracking — Der gefährlichste Regex-Fehler
Katastrophales Backtracking (englisch: catastrophic backtracking) ist ein ernsthaftes Performance-Problem, das ganze Server-Anwendungen zum Absturz bringen kann. Es tritt auf wenn ein Regex auf einem nicht-matchenden String extrem viele Versuche unternehmen muss.
⚠️ Real-World-Schaden: 2016 war CloudFlare für 6 Stunden offline wegen eines einzigen fehlerhaften Regex: (([a-z])+\.)+. Die Regular Expression Denial of Service (ReDoS) Attacke ist eine echte Sicherheitsbedrohung.
Das klassische Muster das zu katastrophalem Backtracking führt:
// ❌ GEFÄHRLICH — Nie in Produktionscode verwenden!
(a+)+b // verschachtelte Quantifizierer
(.*a){10} // Wiederholung mit .*
([a-zA-Z]+)* // Alternation mit Quantifizierer
Das Problem: Bei (a+)+b auf dem String aaaaaaaaaaaac (kein b am Ende) versucht die Regex-Engine exponentiell viele Kombinationen — O(2ⁿ) Versuche bei n Zeichen.
Wie du katastrophales Backtracking vermeidest:
- Vermeide verschachtelte Quantifizierer:
(a+)+→ besser:a+ - Nutze possessive Quantifizierer oder Atomic Groups (wenn verfügbar)
- Teste Regex mit ungültigem Input — nicht nur mit gültigem
- Setze Timeouts für Regex in kritischen Anwendungen
- Unser Tool warnt dich automatisch bei verdächtigen Mustern
Regex Performance-Tipps für Profis
- Spezifischer ist schneller:
\d{4}statt.{4} - Ankerpunkte verwenden:
^und$vermeiden unnötige Backtracking-Pfade - Non-Capturing Groups nutzen:
(?:abc)statt(abc)wenn kein Rückbezug nötig - Alternativen ordnen: Häufigere Alternativen zuerst:
https?statthttp|https - Regex kompilieren: In Schleifen eine
RegExp-Instanz erstellen und wiederverwenden - Lazy vs. Greedy strategisch wählen: Lazy ist nicht automatisch schneller — teste beide Varianten
Praxisbeispiele: Regex im echten Einsatz
Hier kommen die Anwendungsfälle die Entwickler täglich brauchen — jeder mit Regex, Erklärung und Vor/Nachher-Ergebnis.
📧 E-Mail-Adressen extrahieren
[\w.+-]+ = lokaler Teil (Buchstaben, Zahlen, Punkt, Plus, Bindestrich). @ = Pflicht. [\w-]+\.[a-zA-Z]{2,} = Domain mit TLD.🔒 Server-Log-Analyse (Access Log)
🧹 User-Input bereinigen: Mehrfache Leerzeichen
\s+ matcht 1 oder mehr Whitespace-Zeichen (Leerzeichen, Tabs, Newlines). Im Suchen&Ersetzen-Tab ersetze durch ein einzelnes Leerzeichen und trim danach.🔁 Doppelwörter finden
\1 ist ein Rückwärtsverweis (Backreference) auf Gruppe 1. Er matcht dasselbe Wort nochmal. Super für automatisches Lektorat und Textqualitätsprüfung!💱 Währungen formatieren
(?=(\d{3})+(?!\d)) prüft ob nach der aktuellen Stelle Gruppen von 3 Ziffern kommen — ohne diese zu matchen. Klassisches Lookahead-Beispiel.⚠️ HTML parsen mit Regex — Wann du es lassen solltest
Wichtiger Hinweis: Regex kann HTML-Tags finden und extrahieren, aber HTML vollständig mit Regex zu parsen ist eine bekannte schlechte Praxis. HTML ist keine reguläre Sprache — verschachtelte Tags, Kommentare, CDATA-Sektionen machen Regex-Parsing fragil. Für strukturiertes HTML-Parsing nutze einen DOM-Parser (DOMParserin JavaScript,BeautifulSoupin Python, etc.).
Was du aber problemlos per Regex kannst: einfache HTML-Tags entfernen oder spezifische Attribute extrahieren wenn du die Struktur kennst.
Regex-Bibliothek — Copy & Paste Ready
Diese Sammlung an bewährten Regex-Mustern kannst du direkt kopieren und verwenden. Klicke auf „Laden" um das Muster direkt im Tool oben zu testen.
Die 7 häufigsten Regex-Fehler (und wie du sie vermeidest)
. * + ? ( ) [ ] { } ^ $ | \ haben eine besondere Bedeutung. Ein Punkt . matcht jedes Zeichen — nicht nur einen literalen Punkt. Das führt zu unerwarteten Treffern.
\. für einen echten Punkt. Beispiel: 3\.14 matcht nur „3.14", nicht „3X14"..* statt Lazy .*?<.*> auf <b>Text</b> matcht den gesamten String von <b> bis </b> — nicht nur den ersten Tag. Der gierige Quantifizierer frisst so viel wie möglich.
<.*?> um jeden Tag einzeln zu matchen. Oder noch besser: <[^>]+> (keine spitzen Klammern im Inhalt erlaubt) — das ist sogar schneller.g-Flagg-Flag gibt string.match() nur den ersten Treffer zurück — kein Array aller Treffer. Und string.replace() ersetzt ebenfalls nur den ersten Fund.
g-Flag setzen. In unserem Tool ist es standardmäßig aktiv. In Code: /pattern/g oder String.matchAll() verwenden.^ und $ ohne m-Flagm-Flag matchen ^ und $ nur den Anfang und das Ende des gesamten Strings. Bei mehrzeiligem Text funktioniert ^\d+$ daher nicht wie erwartet.
m-Flag aktivieren: /^\d+$/gm(a+)+ oder (\w+\s*)+ können zu exponentieller Laufzeit führen. Bei ausreichend langem Text friert die Anwendung ein.
re.VERBOSE) oder den Regex durch eine Erklärfunktion laufen lassen.DOMParser in JavaScript, BeautifulSoup in Python, HtmlAgilityPack in .NET. Regex nur für spezifische, bekannte Teilmuster nutzen.So benutzt du den Werkix Regex Tester — Schritt für Schritt
/…/ werden automatisch angezeigt — du musst sie nicht eingeben. Tipp: Klicke auf ein Symbol im Cheatsheet unten um es direkt einzufügen.$1, $2 für Capture Groups, $& für den gesamten Treffer. Das Ergebnis wird live angezeigt und kann kopiert werden.Regex vs. andere Methoden — Wann was verwenden?
| Methode | Stärken | Schwächen | Ideal für |
|---|---|---|---|
| Regex | Muster-Matching, Extraktion, komplexe Validierung, Transformation | Lesbarkeit bei Komplexität, Performance bei falschem Einsatz | E-Mail-Validierung, Log-Parsing, Text-Extraktion, Datum-Umformung |
String-Methodenincludes(), startsWith(), split() |
Sehr lesbar, performant für einfache Fälle, kein Lernaufwand | Kein Muster-Matching, kein Backtracking, für komplexe Muster unbrauchbar | Einfache Suche/Prüfung, String-Splitting, bekannte feste Texte |
| Parser (JSON, HTML, XML, CSV) |
Korrekt für strukturierte Daten, robust gegen Varianten | Overhead, Abhängigkeiten, für einfache Fälle überdimensioniert | Strukturierte Formate: JSON, XML, HTML, Programmcode |
| Template Strings | Lesbar, kein Regex-Wissen nötig, leicht wartbar | Nur für feste Muster, kein variables Matching | Bekannte, stabile Textformate ohne Varianz |
Wann du Regex NICHT verwenden solltest
- Vollständiges HTML/XML parsen: Nutze einen DOM-Parser
- JSON verarbeiten:
JSON.parse()ist das richtige Tool - Sehr einfache Zeichenkettenoperationen:
str.includes('foo')ist klarer als/foo/.test(str) - Wenn Kollegen den Regex nicht lesen können: Manchmal ist etwas Ausführlicheres besser als ein cleverer One-Liner
- Performance-kritische Schleifen ohne Kompilierung: Regex außerhalb von Schleifen kompilieren
Passende Tools für deinen Entwickler-Workflow
Der Regex Tester ist Teil unserer kostenlosen Entwickler-Tools-Sammlung. Diese Tools ergänzen sich ideal:
- JSON Formatter & Validator — Regex extrahiert Daten aus Text; JSON Formatter strukturiert die Ergebnisse
- Suchen & Ersetzen — Einfachere Textoperationen ohne Regex-Syntax
- Base64 Encoder/Decoder — Encoded Strings vor dem Regex-Matching decodieren
- URL Encoder/Decoder — URLs für Regex-Matching vorbereiten
- Hash Generator (MD5/SHA) — Hashes validieren, die mit Regex-Mustern geprüft werden
- Unix Timestamp Konverter — Timestamps aus Logs extrahieren, danach konvertieren
- JWT Decoder — JWT-Tokens aus Text per Regex extrahieren und analysieren
- Cron Expression Erklärer — Cron-Strings mit Regex aus Konfigurationsdateien extrahieren
JSON, Base64, Passwort-Generator, QR-Code, Einheitenrechner und vieles mehr – alles im Browser, kein Login.
FAQ — Häufige Fragen zu Regex
\d{5} beschreibt „genau 5 Ziffern hintereinander" und findet alle deutschen Postleitzahlen in einem Text.., *, +, ?, \d, \w) lernst du in 30 Minuten. Mit einem interaktiven Tester wie diesem — mit sofortigem visuellen Feedback — lernst du durch Ausprobieren sehr schnell. Fortgeschrittene Konzepte wie Lookaheads oder katastrophales Backtracking erfordern mehr Übung, sind aber für die meisten Alltags-Anwendungen nicht nötig.g-Flag — ohne es wird nur der erste Treffer gefunden. (2) Fehlende Escapes — . matcht jedes Zeichen, \. einen echten Punkt. (3) ^/$ ohne m-Flag bei mehrzeiligem Text. (4) Greedy statt Lazy Matching. Unser Tool zeigt dir Fehler sofort an und erklärt jeden Teil deines Regex.re (PCRE-ähnlich), Java (java.util.regex), PCRE (PHP, Apache), .NET Regex. Unser Tool verwendet die JavaScript-Engine und ist somit direkt kompatibel mit Node.js, React, Vue und allen modernen Webanwendungen. Die meisten Grundkonzepte sind sprachübergreifend identisch..* und .*??.* ist greedy (gierig) — es matcht so viel wie möglich. .*? ist lazy (faul) — es matcht so wenig wie möglich. Beispiel: <.*> auf <b>Text</b> matcht den gesamten String. <.*?> matcht hingegen <b> und </b> als separate Treffer. Für Tag-Extraktion ist lazy fast immer richtig.^[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}$. Wichtig: Kein Regex kann E-Mail-Adressen zu 100% nach RFC 5322 validieren — das Pattern ist extrem komplex. Der einzig sichere Weg eine E-Mail zu validieren ist das Versenden einer Bestätigungsmail. Nutze Regex nur als erste Plausibilitätsprüfung.(a+)+b auf dem String aaaaaac führen zu O(2ⁿ) Schritten. Das wird als ReDoS (Regular Expression Denial of Service) Angriff ausgenutzt. Unser Tool erkennt verdächtige Muster automatisch und gibt eine Warnung aus.string.match(/(\d{4})-(\d{2})/) gibt [0] den gesamten Match zurück, [1] die erste Gruppe, [2] die zweite. Mit string.replace(/(\d{4})-(\d{2})/, '$2/$1') kannst du Gruppen im Ergebnis neu anordnen. Für alle Treffer mit Gruppen: string.matchAll(/pattern/g) liefert einen Iterator über alle Matches mit Gruppeninfo.\d \w \s . ^ $ * + ?) — 30 Minuten. (2) Sofort im interaktiven Tester ausprobieren — unser Tool hier mit Live-Highlighting ist ideal. (3) Echte Probleme lösen: einen Log parsen, E-Mails extrahieren, Daten transformieren. Lernen durch echte Anwendungsfälle ist viel effektiver als Syntax pauken.grep -E, sed und awk unter Linux/macOS. Unser Tool ist das einzige komplett auf Deutsch mit integrierten Erklärungen.REGEXMATCH(), REGEXEXTRACT() und REGEXREPLACE() sind eingebaut. In Excel: Ab Excel 365 gibt es ebenfalls Regex-Funktionen. Für ältere Excel-Versionen braucht man VBA oder Power Query. Unser Text Suchen & Ersetzen Tool kann dir beim Testen der Muster helfen bevor du sie in Sheets einsetzt./\d/ in Regex = "\\d" in einem String-Argument für new RegExp(). (2) Unterschiedliche Regex-Engines (JavaScript vs. Python vs. Java) haben kleine Syntax-Unterschiede. (3) In Code manchmal vergessen das g-Flag zu setzen. Unser Tool zeigt genau welche Flags aktiv sind.Fazit: Der vollständigste deutschsprachige Regex Tester
Reguläre Ausdrücke sind eines der mächtigsten Werkzeuge in der Softwareentwicklung. Mit dem richtigen Tester und dem richtigen Verständnis sind sie keine schwarze Magie mehr — sondern ein präzises, elegantes Werkzeug das täglich Zeit spart.
Unser kostenloser Regex Tester bietet alles was du brauchst: Live-Highlighting, automatische Erklärungen, Suchen & Ersetzen, lokales Speichern, URL-Sharing, JSON/CSV-Export und Performance-Warnungen — auf Deutsch, im Browser, ohne Login.
Egal ob du Regex gerade erst lernst oder als erfahrener Entwickler schnell ein komplexes Muster debuggen willst — dieses Tool ist für dich gemacht.