Regex-Tester
Reguläre Ausdrücke live testen, Treffer hervorheben und erklären lassen — sofort und kostenlos.
Testtext
2 Trefferinfo@beispiel.deinfobeispiel.demax@firma.commaxfirma.comReguläre Ausdrücke testen und lernen
Der Regex-Tester ermöglicht das Erstellen, Testen und Debuggen von regulären Ausdrücken (Regular Expressions) mit Live-Vorschau der Treffer, Gruppenerkennung und Fehlerhinweisen. Reguläre Ausdrücke sind eines der mächtigsten Werkzeuge in der Textverarbeitung — sie finden, validieren und transformieren Textmuster in Strings, Dateien, Log-Dateien und Datenbanken. Die Syntax geht auf die Arbeiten des Mathematikers Stephen Kleene aus den 1950er Jahren zurück und ist heute in praktisch jeder Programmiersprache verfügbar.
Die Grundbausteine
Reguläre Ausdrücke setzen sich aus wenigen Grundelementen zusammen, die sich beliebig kombinieren lassen:
- Literale Zeichen: Buchstaben und Zahlen matchen sich selbst —
abcfindet genau die Zeichenfolge „abc" - Zeichenklassen:
[a-z](ein Kleinbuchstabe),[0-9]oder\d(eine Ziffer),\w(Wortzeichen: Buchstabe, Ziffer oder Unterstrich),\s(Whitespace: Leerzeichen, Tab, Newline),.(beliebiges Zeichen außer Newline) - Quantifizierer:
*(0 oder mehr),+(1 oder mehr),?(0 oder 1),{3}(genau 3),{2,5}(2 bis 5),{3,}(mindestens 3). Standardmäßig „gierig" (greedy) — mit?dahinter werden sie „genügsam" (lazy):.*? - Anker:
^(Zeilen-/Stringanfang),$(Zeilen-/Stringende),\b(Wortgrenze — wichtig zur Vermeidung von Teiltreffern) - Gruppen:
(...)zum Erfassen (Capturing Group),(?:...)ohne Erfassung,(?<name>...)benannte Gruppe,(?=...)Lookahead,(?<=...)Lookbehind - Alternation:
a|b(a oder b) — funktioniert auch mit Gruppen:(Hund|Katze)
Häufige Regex-Muster für die Praxis
Einige Muster begegnen Entwicklern immer wieder:
- Deutsche Postleitzahl:
^\d{5}$— genau 5 Ziffern - E-Mail (pragmatisch):
[^\s@]+@[^\s@]+\.[^\s@]+— eine vollständige RFC-5322-konforme Regex wäre über 6.000 Zeichen lang - Deutsche Telefonnummer:
\+?49[\s.-]?\d{2,5}[\s.-]?\d{3,10} - URL:
https?://[^\s/$.?#].[^\s]* - IPv4-Adresse:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b - Datum (DD.MM.YYYY):
\d{2}\.\d{2}\.\d{4}
JavaScript-Flags
Der Tester unterstützt alle JavaScript-Regex-Flags: g (global — alle Treffer statt nur dem ersten), i (case-insensitive — Groß-/Kleinschreibung ignorieren), m (multiline — ^ und $ matchen Zeilenanfang/-ende statt nur Stringanfang/-ende), s (dotAll — . matcht auch Newlines), u (Unicode — korrekter Umgang mit Emojis und nicht-lateinischen Zeichen) und d (hasIndices — liefert Start- und Endposition jedes Treffers). Die richtige Kombination von Flags ist entscheidend für das gewünschte Ergebnis.
Performance-Tipps
Reguläre Ausdrücke können bei ungünstiger Formulierung exponentiell langsam werden — das sogenannte „Catastrophic Backtracking". Vermeiden Sie verschachtelte Quantifizierer wie (a+)+ und verwenden Sie wenn möglich spezifischere Zeichenklassen. Bei der Verarbeitung großer Texte kann ein Ausdruck wie [a-z]+ statt .+ die Geschwindigkeit um ein Vielfaches steigern. Alle Auswertungen finden lokal in Ihrem Browser statt — Ihre Testdaten werden nicht übertragen.
Häufig gestellte Fragen
Was ist ein regulärer Ausdruck (Regex)?
Ein regulärer Ausdruck (Regular Expression, kurz Regex) ist ein Muster, das eine Menge von Zeichenketten beschreibt. Regex wird in der Programmierung verwendet, um Texte zu durchsuchen, zu validieren oder zu ersetzen — z.B. um E-Mail-Adressen, Telefonnummern oder URLs in einem Text zu finden.
Welche Flags gibt es in JavaScript-Regex?
Die wichtigsten Flags sind: g (global — alle Treffer finden), i (ignoreCase — Groß-/Kleinschreibung ignorieren), m (multiline — ^ und $ pro Zeile), s (dotAll — Punkt findet auch Zeilenumbrüche) und u (unicode — vollständige Unicode-Unterstützung). Flags werden nach dem abschließenden Schrägstrich notiert: /muster/gi.
Was bedeuten $1 und $2 beim Ersetzen?
$1, $2 usw. sind Rückverweise auf erfassende Gruppen im Regex-Muster. Wenn Ihr Muster z.B. (\w+)@(\w+) ist, enthält $1 den Teil vor dem @-Zeichen und $2 den Teil danach. So können Sie Teile des Treffers in der Ersetzung wiederverwenden.
Was ist der Unterschied zwischen * und +?
* (Stern) bedeutet „0 oder mehr Wiederholungen" — das vorherige Zeichen darf also auch gar nicht vorkommen. + (Plus) bedeutet „1 oder mehr Wiederholungen" — das Zeichen muss mindestens einmal vorhanden sein. Beispiel: a* trifft auf „", „a", „aa" usw., während a+ nur auf „a", „aa" usw. trifft.
Was ist eine Zeichenklasse?
Eine Zeichenklasse wird mit eckigen Klammern definiert, z.B. [abc]. Sie trifft auf genau ein Zeichen zu, das in der Klammer steht. Mit einem Bindestrich können Sie Bereiche angeben: [a-z] für alle Kleinbuchstaben. Ein ^ am Anfang negiert die Klasse: [^0-9] trifft auf alles außer Ziffern.
Werden meine Daten gespeichert?
Nein. Die gesamte Regex-Auswertung läuft ausschließlich in Ihrem Browser. Kein Text wird an einen Server gesendet oder gespeichert. Ihre Daten bleiben vollständig privat.
Was ist ein Lookahead / Lookbehind?
Lookahead und Lookbehind sind sogenannte „Assertions" — sie prüfen, ob ein Muster vor oder nach der aktuellen Position steht, ohne es in den Treffer einzuschließen. (?=abc) ist ein positiver Lookahead (abc muss folgen), (?!abc) ein negativer (abc darf nicht folgen). (?<=abc) und (?<!abc) sind die Lookbehind-Varianten.