DokumenteBilderMedienPDF-Werkzeuge

Regex-Tester Online

Teste reguläre Ausdrücke in Echtzeit mit Treffer-Hervorhebung.

//

2 matches found

#1hello@convertir.ai@14
#2support@example.com@36
Processed in your browser

Debugge deine Regex sofort

Echtzeit

Treffer werden beim Tippen hervorgehoben. Kein Neuladen, keine Senden-Schaltflächen.

Erfassungsgruppen

Sieh jede erfasste Gruppe einzeln mit ihrem Index und Wert.

Alle Flags

Vollständige Unterstützung der Flags g, i, m, s aus der ECMAScript/JavaScript-Engine.

Keine Datenübertragung

Dein Testtext verlässt den Browser nie. Ideal für sensible Daten.

Drei Schritte, kein Aufwand

1

Gib dein Regex-Muster ein

Tippe deinen regulären Ausdruck in das Musterfeld. Wähle die Flags: g, i, m, s.

2

Füge deinen Testtext ein

Gib den Text ein, gegen den du das Muster testen möchtest. Treffer werden sofort hervorgehoben.

3

Überprüfe die Ergebnisse

Sieh dir vollständige Treffer und Erfassungsgruppen an. Passe das Muster an, bis du das gewünschte Ergebnis erhältst.

Noch Fragen?

Ein regulärer Ausdruck (Regex oder Regexp) ist eine Zeichenfolge, die ein Suchmuster in Text definiert. Sie sind eine formale Sprache aus der Automatentheorie und formalen Sprachtheorie. Mit Regex kannst du Text mit komplexen Mustern in einer einzigen Codezeile suchen, validieren, extrahieren und ersetzen. Sie werden in jeder Programmiersprache, in Texteditoren, Datenbanken und Befehlszeilenwerkzeugen eingesetzt.

Zu den am häufigsten verwendeten Mustern zählen: E-Mail (^[\w.+-]+@[\w-]+\.[\w.]+$), URL (https?://[\S]+), Telefon (\+?[\d\s\-()]{7,15}), Postleitzahl (/^\d{5}(-\d{4})?$/), ISO-Datum (\d{4}-\d{2}-\d{2}), IPv4 (\b(?:\d{1,3}\.){3}\d{1,3}\b) und nur alphanumerische Zeichen ([a-zA-Z0-9]+). Diese Muster sind Ausgangspunkte – in der Produktion sollten sie stets an das genaue erwartete Format angepasst werden.

Flags ändern das Verhalten des Musters: g (global) findet alle Treffer statt beim ersten zu stoppen; i (insensitive) ignoriert die Groß- und Kleinschreibung; m (multiline) lässt ^ und $ mit dem Anfang und Ende jeder Zeile übereinstimmen, nicht nur des gesamten Texts; s (dotAll) lässt den Punkt auch mit Zeilenumbrüchen übereinstimmen, was standardmäßig nicht der Fall ist. Flags können kombiniert werden: /muster/gim.

Erfassungsgruppen, definiert mit Klammern (), ermöglichen das Extrahieren bestimmter Teile eines Treffers. Zum Beispiel erfasst /(\d{4})-(\d{2})-(\d{2})/ auf '2024-03-15' drei Gruppen: Jahr, Monat und Tag. Benannte Gruppen (?<name>muster) ermöglichen den Zugriff über den Namen statt über den numerischen Index. Nicht-erfassende Gruppen (?:muster) gruppieren ohne zu erfassen – nützlich, um Quantifizierer anzuwenden, ohne eine Gruppe zu erstellen.

Lookahead und Lookbehind sind Positionsaussagen, die überprüfen, was vor oder nach einer Position steht, ohne Zeichen zu verbrauchen. Positiver Lookahead (?=muster): trifft zu, wenn danach muster folgt. Negativer Lookahead (?!muster): trifft zu, wenn muster NICHT folgt. Positiver Lookbehind (?<=muster): trifft zu, wenn muster davor steht. Negativer Lookbehind (?<!muster): trifft zu, wenn muster NICHT davor steht. Zum Beispiel extrahiert \d+(?= Euro) Zahlen, die von Euro gefolgt werden, ohne das Wort einzuschließen.

Geschichte der regulären Ausdrücke: von Kleene 1951 bis PCRE

Reguläre Ausdrücke wurden 1951 von Stephen Kleene in seiner Arbeit Representation of Events in Nerve Nets and Finite Automata mathematisch formuliert, die algebraische Notation für reguläre Sprachen einführte. Der Kleene-Stern-Operator (*) trägt seinen Namen. Die erste praktische Softwareimplementierung stammte von Ken Thompson im Texteditor qed im Jahr 1968 für CTSS (Compatible Time-Sharing System). Thompson implementierte Regex mit einer effizienten NFA-Konstruktion (nichtdeterministischer endlicher Automat), die O(n)-Komplexität in der Textgröße garantierte.

PCRE (Perl Compatible Regular Expressions) wurde 1997 von Philip Hazel als C-Bibliothek entwickelt, die die Regex-Syntax von Perl 5 reimplementiert. PCRE fügte Funktionen hinzu, die klassischen Engines fehlten: Lookahead/Lookbehind, benannte Gruppen, Rückverweise und Rekursion. PCRE wurde zur De-facto-Regex-Engine für PHP, Apache, nginx, R und hunderte weiterer Anwendungen. ECMAScript (JavaScript) implementiert seine eigene Engine mit ähnlicher, aber unterschiedlicher Semantik – insbesondere Lookbehind-Unterstützung, die erst in ES2018 hinzugefügt wurde.

In der modernen Webentwicklung sind Regex unverzichtbar für Formularvalidierung im Browser, Datenextraktion beim Scraping, Transformationen in Build-Tools wie webpack und vite, Routing-Regeln in Frameworks wie Express und Next.js sowie erweiterte Suche in Editoren wie VS Code. Der Unterschied zwischen PCRE- und ECMAScript-Varianten betrifft hauptsächlich: Lookbehind variabler Länge (PCRE unterstützt es, ECMAScript hat Einschränkungen), bedingte Verweise und Rekursion (nur PCRE) sowie einige Escape-Sequenzen.