Regularer-Ausdruck-Tester
Regulare Ausdrucke (Regex) sind Muster zum Abgleichen von Text. Dieses Tool analysiert die Regex-Syntax, erklart Musterkomponenten und bietet einen Testbereich, um Ubereinstimmungen mit Beispieltext auszuprobieren. Unterstutzt JavaScript-, PCRE- und Python-Regex-Formate.
Spezifikationen
Haeufige Anwendungsfaelle
- Debuggen, warum ein Regex nicht den erwarteten Text abgleicht
- Regex-Syntax durch Erklarungen erlernen
- Muster vor dem Einfugen in den Code testen
- Eingabemuster fur Formularfelder validieren
- Daten aus strukturiertem Text extrahieren (Logs, CSV, HTML)
Funktionen
- Regex-Format erkennen (JavaScript /pattern/flags, PCRE #pattern#, Python r"pattern")
- Musterkomponenten in verstandlichem Deutsch erklaren
- Gegen Beispieltext testen mit Hervorhebung der Treffer
- Einzeltreffer- oder Alle-Treffer-Modus
- Erfassungsgruppen und deren Inhalte anzeigen
- Benannte Erfassungsgruppen anzeigen
- Trefferpositionen und -indizes anzeigen
- Regex-Ausfuhrungszeit anzeigen
- Muster-Feature-Badges (Anker, Quantoren usw.)
- Musterwarnungen
- Bibliothek gangiger Muster (E-Mail, URL, Telefon usw.)
Beispiele
E-Mail-Muster
Ausprobieren →Ein Regex zum Abgleichen von E-Mail-Adressen.
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/iDatumsmuster
Ausprobieren →Ein Regex fur YYYY-MM-DD-Daten mit Erfassungsgruppen.
/(\d{4})-(\d{2})-(\d{2})/Tipps
- Verwenden Sie Online-Tester, um komplexe Muster vor dem Produktiveinsatz zu debuggen.
- Sonderzeichen (. ^ $ * + ? { } [ ] \ | ( )) mit Backslash escapen.
- Benannte Erfassungsgruppen (?<name>...) machen Treffer lesbarer.
- Das g-Flag findet alle Treffer; ohne es wird nur der erste Treffer zuruckgegeben.
- Vorsicht mit gierigen Quantoren (* +); verwenden Sie bei Bedarf nicht-gierige (*? +?).
Verstaendnis Regularer-Ausdruck-Tester
Regulare Ausdrucke (Regex) sind eine Musterabgleich-Sprache, die in praktisch jeder Programmiersprache, jedem Texteditor und jedem Kommandozeilenwerkzeug verwendet wird. Ein Regex definiert ein Suchmuster unter Verwendung einer Kombination aus literalen Zeichen und Metazeichen, die Klassen von Zeichenketten abgleichen. Sie sind unverzichtbar fur Eingabevalidierung, Textextraktion, Such-und-Ersetz-Operationen und Loganalyse.
Die Kernsyntax umfasst Zeichenklassen ([a-z], \\d, \\w, \\s), Quantoren (*, +, ?, {n,m}), Anker (^, $, \\b), Alternation (|) und Gruppierung mit Klammern. Erfasste Gruppen extrahieren ubereinstimmende Teilzeichenketten und ermoglichen Ruckverweise. Lookaheads (?=...) und Lookbehinds (?<=...) gleichen Positionen ab, ohne Zeichen zu konsumieren, und ermoglichen komplexe Aussagen uber den umgebenden Kontext.
JavaScript-Regex hat seinen eigenen Dialekt mit spezifischen Flags: g (global), i (Gross-/Kleinschreibung ignorieren), m (mehrzeilig), s (dotAll), u (Unicode) und y (sticky). Das u-Flag ist zunehmend wichtig fur die korrekte Behandlung von Unicode-Text, da ohne es Muster mehrbyte Zeichen moglicherweise nicht korrekt abgleichen. Benannte Erfassungsgruppen (?<name>...) verbessern die Lesbarkeit gegenuber nummerierten Gruppen.
Haufige Regex-Aufgaben umfassen E-Mail-Validierung, URL-Parsing, Extraktion von Daten aus strukturiertem Text (Logdateien, CSV) und Ersetzen von Mustern bei Code-Refactoring. Allerdings hat Regex Grenzen — es kann keine verschachtelten Strukturen wie HTML oder JSON parsen (verwenden Sie einen richtigen Parser), und ubermasig komplexe Muster werden unlesbar und unwartbar. Der Witz "jetzt haben Sie zwei Probleme" spiegelt reale Wartungsherausforderungen mit komplexem Regex wider.
HTML ist eine kontextfreie Sprache mit verschachtelten Strukturen, die regulare Ausdrucke grundsatzlich nicht verarbeiten konnen. Ein Regex kann offnende und schliessende Tags mit beliebiger Verschachtelungstiefe nicht korrekt abgleichen. Einfache Falle scheinen zu funktionieren, scheitern aber an Randfallen mit verschachtelten Tags, Attributen, die > enthalten, oder Kommentaren. Fur die HTML-Verarbeitung verwenden Sie einen DOM-Parser wie DOMParser im Browser, cheerio fur Node.js oder BeautifulSoup fur Python.
Der Unterschied zwischen .* (gierig) und .*? (sparsam) Quantoren ist fur das Abgleichverhalten bedeutsam. Gieriges .* gleicht so viele Zeichen wie moglich ab und verfolgt dann bei Bedarf zuruck. Sparsames .*? gleicht so wenige Zeichen wie moglich ab. In einer Zeichenkette wie "<b>eins</b><b>zwei</b>" gleicht das gierige Muster <b>.*</b> die gesamte Zeichenkette ab, wahrend das sparsame Muster <b>.*?</b> nur das erste "<b>eins</b>" abgleicht. Die Wahl des falschen Modus ist eine der haufigsten Ursachen fur unerwartetes Regex-Verhalten.
In JavaScript ermoglicht das u-Flag (/pattern/u) Unicode-bewusstes Abgleichen. Ohne es gleicht der Metazeichen . keine Zeichen ausserhalb der Basic Multilingual Plane ab (wie Emoji), und \\w gleicht nur ASCII-Wortzeichen ab. Das u-Flag lasst Quantoren und Zeichenklassen Surrogatpaare korrekt behandeln und ermoglicht Unicode-Property-Escapes wie \\p{Letter}. Lookaheads (?=...) und Lookbehinds (?<=...) sind Null-Breite-Aussagen, die an einer Position nach Mustern prufen, ohne sie in den Treffer einzubeziehen. Positiver Lookahead (?=...) pruft, was folgen muss, wahrend negativer Lookahead (?!...) pruft, was nicht folgen darf. Zum Beispiel gleicht \\d+(?= dollars) Zahlen ab, denen " dollars" folgt, erfasst aber nur die Zahl selbst. Lookbehinds funktionieren auf die gleiche Weise, prufen aber den vorangehenden Text.