Reguläre Ausdrücke online testen | JavaScript Regex | Awesome Toolkit

Regex Tester

Reguläre Ausdrücke in Echtzeit testen. Treffer hervorgehoben, Capture-Gruppen angezeigt, Flags konfigurierbar.

Von Marshkalk

Hervorgehobene Treffer

So verwenden Sie den Regex-Tester

  1. Geben Sie Ihr Muster im Feld Muster ein.
  2. Aktivieren Sie Flags nach Bedarf: g findet alle Treffer, i ignoriert Groß-/Kleinschreibung, m lässt ^ und $ auf Zeilengrenzen passen, s lässt . auf Zeilenumbrüche passen.
  3. Fügen Sie Ihre Testzeichenkette ein, Treffer werden in Echtzeit hervorgehoben und Capture-Gruppen darunter angezeigt.

Kurzreferenz JavaScript-Regex-Syntax

TokenBedeutung
.Beliebiges Zeichen (außer Zeilenumbruch)
\d / \DZiffer / Nicht-Ziffer
\w / \WWortzeichen [a-zA-Z0-9_] / Nicht-Wortzeichen
\s / \SLeerzeichen / Nicht-Leerzeichen
^ / $Anfang / Ende der Zeichenkette (oder Zeile mit Flag m)
\bWortgrenze
+ / * / ?Ein oder mehr / null oder mehr / optional
{n,m}Zwischen n und m Wiederholungen
[abc]Zeichenklasse
(abc)Einfangende Gruppe
(?:abc)Nicht einfangende Gruppe
a|bAlternation (a oder b)

Häufige Regex-Muster

  • E-Mail-Adresse: [a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}
  • URL: https?://[^\s/$.?#][^\s]*
  • IP-Adresse: \b(?:\d{1,3}\.){3}\d{1,3}\b
  • Datum (JJJJ-MM-TT): \d{4}-\d{2}-\d{2}
  • Hex-Farbe: #(?:[0-9a-fA-F]{3}){1,2}\b

Gierige vs. faule Quantifikatoren

Standardmäßig sind Quantifikatoren (+, *) gierig: sie passen auf so viel wie möglich. Fügen Sie ? nach dem Quantifikator hinzu, um ihn faul zu machen (so wenig wie möglich): +?, *?. Beispiel: <.+?> passt auf einzelne HTML-Tags statt auf alles vom ersten < bis zum letzten >.

Unterschiede zwischen Regex-Engines: JavaScript vs. PCRE vs. RE2

Regex-Syntax sieht über Engines hinweg ähnlich aus, verhält sich aber in wichtigen Bereichen anders. Ein Muster, das im Browser funktioniert, kann in PHP, Python oder Go scheitern:

FunktionJavaScript (dieses Tool)PCRE (PHP, Python, Perl)RE2 (Go, Rust)
Lookbehind (?<=...)Feste Breite (ES2018+)Variable BreiteNur feste Breite
Rückreferenzen JaJaNein
Atomare Gruppen (?>...)NeinJaNein
Unicode-Klassen \p{L}Ja (mit Flag u)JaJa (Standard)
\d entspricht Unicode-ZiffernNein (nur ASCII ohne u)Ja (PCRE2-Standard)Nein (nur ASCII)

5 häufige Fallen

  • Katastrophales Backtracking: Ein Muster wie (a+)+b auf einer langen Folge von 'a' ohne 'b' löst exponentielles Backtracking aus und kann Ihre Anwendung einfrieren. Vermeiden Sie verschachtelte Quantifikatoren auf überlappenden Mustern. Testen Sie immer mit langen, nicht-passenden Eingaben.
  • \d und Unicode-Ziffern: Ohne das Flag u entspricht \d nur den ASCII-Ziffern 0-9, nicht arabisch-indischen Ziffern (٠-٩) oder anderen Unicode-Formen. Fügen Sie u hinzu und verwenden Sie \p{N} für alle Unicode-Ziffern.
  • ^ und $ ohne das m-Flag: Standardmäßig passen ^ und $ auf den Anfang und das Ende der gesamten Zeichenkette. Für zeilenweise Anker bei mehrzeiliger Eingabe fügen Sie das Flag m hinzu.
  • Gieriger Quantifikator, der zu viel frisst: <.+> auf <b>Text</b> passt von der ersten < bis zur letzten >. Verwenden Sie den faulen <.+?>, um je ein Tag zu erfassen.
  • Nicht escapte Punkte in Domänenmustern: Der Punkt entspricht jedem Zeichen. beispiel.de passt auch auf beispielXde. Escapen Sie literale Punkte: beispiel\.de.