Blog
Deutsch

Regex-Tester online — reguläre Ausdrücke in JavaScript testen

JavaScript-Regex-Tester mit Flags, Treffermarkierung, Gruppentabelle und Ersetzungsvorschau

Verarbeitung im Browser · kein Hochladen

Flags

Was das Tool ist

Bei regulären Ausdrücken schleichen sich leicht kleine Fehler ein. Geben Sie ein Muster und einen Text ein, und das Tool zeigt sofort, wo es trifft, markiert jeden Treffer farbig und listet alle Treffer mit Position und Gruppen auf. Mit einem Ersetzungsstring sehen Sie zusätzlich eine Vorschau des ersetzten Textes.

Anleitung

  1. Geben Sie das Muster ohne umschließende Schrägstriche ein (ein aus Code eingefügtes /pattern/gi wird in Muster und Flags aufgeteilt), zum Beispiel (\d+)-(?<word>[a-z]+).
  2. Setzen Sie die benötigten Flags. g, das alle Treffer findet, ist standardmäßig aktiv.
  3. Fügen Sie den Testtext ein. Treffer werden hervorgehoben, und die Tabelle listet Position und Gruppen jedes Treffers.
  4. Verwenden Sie im Ersetzungsfeld $1, $<name> oder $&, um das Ergebnis zu sehen, und kopieren Sie es. Um alle Treffer zu löschen, aktivieren Sie Ersetzung anzeigen und lassen das Feld leer.

So funktioniert es

  • Flags: g global, i ignoriert Groß-/Kleinschreibung, m lässt ^ und $ pro Zeile gelten, s lässt . auch Zeilenumbrüche treffen, u aktiviert den Unicode-Modus, y trifft nur an der aktuellen Position (sticky).
  • Ohne g wird nur der erste Treffer geliefert. Mit g und y zusammen werden nur Treffer gefunden, die lückenlos aufeinander folgen.
  • Leere Treffer (a*, ^, das leere Muster) rücken die Position um ein Zeichen vor, und die Suche geht weiter; mit u ist der Schritt ein ganzer Codepunkt.
  • Die Ersetzungssyntax ist die von String.prototype.replace: $$, $&, $`, $', $1 bis $99 und $<name>.
  • Schutzmechanismen: höchstens 1.000 Treffer, 200.000 Zeichen Text und 5.000 Zeichen Muster sowie eine Laufzeitgrenze von 1,5 Sekunden. Die Grenze funktioniert, indem die Suche in einem Web Worker läuft und dieser beendet wird. Deshalb friert die Hauptseite nie ein.

Beispiele

Muster Flags Text Ergebnis
\d+ g a1 b22 c333 1, 22, 333
[A-Za-zÄÖÜäöüß]+ g 3 Äpfel, 12 Birnen Äpfel, Birnen
a* g baac vier Treffer, an den Positionen 0, 1 (aa), 3 und 4
(?<y>\d{4})-(\d{2}) 2024-05 Gruppe 1 y = 2024, Gruppe 2 = 05

Hinweise

  • \w umfasst in JavaScript nur [A-Za-z0-9_], Umlaute und ß fallen also heraus. Verwenden Sie eine Zeichenklasse wie oben oder \p{L} mit dem Flag u. Emojis lassen sich mit dem Flag u und \p{Emoji_Presentation} treffen.
  • Ihr Muster und Ihr Text werden nie an einen Server gesendet.

Häufige Fragen

Welche Regex-Variante wird verwendet?

Die JavaScript-Regex-Engine (ECMAScript) Ihres Browsers. Die Syntax weicht daher stellenweise von Python, PCRE oder Java ab. Possessive Quantifizierer und Inline-Flags wie (?i) gibt es nicht, und benannte Gruppen schreibt man (?<name>...).

Was passiert, wenn ein Muster zu lange läuft?

Die Suche läuft in einem separaten Web Worker, der nach 1,5 Sekunden beendet wird. Verschachtelte Wiederholungen wie (a+)+$ können bei etwas längerer Eingabe exponentiell langsam werden (katastrophales Backtracking). In diesem Fall erscheint eine Meldung, und die Seite bleibt bedienbar.

Gibt es Grenzen für Trefferzahl oder Textlänge?

Angezeigt werden die ersten 1.000 Treffer, der Text darf bis zu 200.000 Zeichen und das Muster bis zu 5.000 Zeichen lang sein. Darüber hinaus wird die Liste gekürzt oder stattdessen eine Meldung angezeigt.

Kann ein Muster, das den leeren String trifft, endlos laufen?

Nein. Nach einem leeren Treffer wird die Suchposition (lastIndex) um ein Zeichen weitergesetzt, sodass die Schleife immer endet. Mit dem Flag u springt sie über einen ganzen Codepunkt, ein Emoji wird also nie zerteilt.

Fehlt ein Tool?