oLoveTools
Abgeschottete Regex-Engine

Online-Regex-Tester, Debugger und Erklärer

Reguläre Ausdrücke bauen, testen und debuggen — mit echtem Syntaxbaum, Positionen jeder Erfassungsgruppe, Warnungen vor katastrophalem Backtracking und Code-Export in zehn Sprachen, alles in deinem Tab.

Jeder Treffer mit Positionen und Gruppen
Das Muster als Baum erklärt, nicht als flache Liste
Entlaufene Muster werden beendet, statt den Tab einzufrieren
Export nach JavaScript, Python, Go, Rust und sechs weitere
Regulärer Ausdruck
/
/
GültigKeine TrefferAbgeschottet
  • Innerhalb von [ ] ist der Punkt schon wörtlich, ihn zu escapen ist überflüssig.
Testtext

Klicke eine Hervorhebung an, um diesen Treffer auszuwählen. Alt gedrückt halten zeigt den rohen Text; F3 und Umschalt+F3 springen durch die Treffer.

Weitermachen
Treffer

Keine Treffer

Das Muster ist gültig, es kommt in diesem Text nur nicht vor. Prüf die Flags: ohne g wird nur der erste Treffer gemeldet.

Was dieses Muster tut
  • [\w.%+-]+Wiederholt ein Mal oder öfter — gierig: nimmt so viel wie möglich und gibt nur zurück, wenn es sein muss
    • [\w.%+-]Ein beliebiges Zeichen aus: \w . % + -
  • @Das Zeichen „@“
  • [\w.-]+Wiederholt ein Mal oder öfter — gierig: nimmt so viel wie möglich und gibt nur zurück, wenn es sein muss
    • [\w.-]Ein beliebiges Zeichen aus: \w . -
  • \.Das Zeichen „.“, wörtlich genommen
  • [A-Za-z]{2,}Wiederholt mindestens 2 Mal — gierig: nimmt so viel wie möglich und gibt nur zurück, wenn es sein muss
    • [A-Za-z]Ein beliebiges Zeichen aus: A–Z a–z

So funktioniert es

1

Schreib das Muster

Tipp es ein, nimm eins aus der Bibliothek oder füg einen geteilten Link ein. Das Muster wird danach eingefärbt, was jedes Stück wirklich ist, und Fehler werden genau dort unterstrichen, wo sie passieren.

2

Flags und Modus einstellen

Schalte g, i, m, s, u, v, y und d um und wähl dann, ob du suchst, ersetzt oder teilst. Schalte den Live-Modus aus, wenn dir lieber ist, dass nichts läuft, bis du den Knopf drückst.

3

Sicher ausführen

Die Suche passiert in einem Web Worker mit Zwei-Sekunden-Limit. Jeder Treffer kommt mit Positionen und Erfassungsgruppen zurück, und das Panel warnt dich vor einem Muster, das ewig zurücksetzen könnte.

4

Nimm es mit

Kopier die Regex, exportier die Treffer als JSON oder CSV, generier den passenden Code für zehn Sprachen oder schick das Ergebnis direkt an ein anderes oLoveTools-Werkzeug.

Ein Parser, kein Tokenizer

Das Muster wird in einen echten Syntaxbaum zerlegt, die Erklärung zeigt also, was worin steckt — und liegt bei benannten Gruppen richtig. Ein Tokenizer liest (?<year>\d{4}) als Erfassungsgruppe gefolgt von einem optionalen Etwas; ein Parser liest die benannte Gruppe, die es ist.

Die Engine läuft dort, wo man sie töten kann

Die Suche passiert in einem Web Worker mit Wachhund. Hier gemessen: (a+)+$ gegen 31 Zeichen braucht über vier Minuten reine CPU-Zeit auf derselben Engine, die dein Browser benutzt. Auf der Seite ist das ein toter Tab; in einem Worker ist es ein Durchlauf, der nach zwei Sekunden beendet wird.

Treffer mit echten Positionen

Das d-Flag wird im Hintergrund gesetzt, jede Erfassungsgruppe trägt also, wo sie anfängt und endet, nicht nur, was sie gefangen hat. Genau das malt die Gruppen innerhalb eines hervorgehobenen Treffers und lässt dich von der Liste zu den exakten Zeichen springen.

Es warnt, bevor du dich verbrennst

Verschachtelte Quantoren über überlappende Zeichen, Quantoren um etwas, das nichts verbrauchen kann, Rückverweise auf Gruppen, die es nicht gibt, \p{…} ohne das u-Flag und Lookbehind auf einem zu alten Browser — alles markiert, bevor irgendetwas läuft.

Export in zehn Sprachen

JavaScript, TypeScript, Python, Java, C#, PHP, Go, Rust, Ruby und grep/sed, mit korrekt übersetzten Flags und der Ersetzung in der jeweils eigenen Syntax. Die Go- und Rust-Snippets sagen es, wenn das Muster etwas benutzt, das RE2 nicht kann.

An den Rest der Suite gekettet

Schick den ersetzten Text, die geteilten Stücke oder die Treffer als JSON direkt an WordFlow, DiffSnap, JSONFlow, CodeCard oder HashBolt — ohne Umweg über deinen Download-Ordner.

Regex-Tester

Ein Regex-Tester, der deinen Browser nicht aufhängen kann

Reguläre Ausdrücke sind das Einzige, was ein Tester ausführen muss, bevor sie korrekt sind, und ein falscher kann pathologisch sein: ein Muster wie (a+)+$ gegen eine Zeichenkette, die fast passt, braucht exponentielle Zeit, und die Engine des Browsers lässt sich nicht unterbrechen. RegexFlow führt jede Suche in einem Web Worker mit einem Zwei-Sekunden-Wachhund aus. Läuft ein Durchlauf über, wird der Worker beendet und ersetzt, und du bekommst eine Meldung statt eines eingefrorenen Tabs mit deinem Muster darin.

Erfassungsgruppen mit Namen und Positionen
Ersetzen und Teilen, nicht nur Suchen
Backtracking-Warnungen vor dem Ausführen
Zehn Zielsprachen

Nichts verlässt den Tab

Das Muster, der Testtext, die Ersetzung und jede Datei, die du öffnest, werden vollständig in deinem Browser verarbeitet — kein Upload, kein Serverweg. Dateien werden mit dem browsereigenen FileReader gelesen. Das Einzige, was hinausgehen kann, ist ein Teilen-Link, und auch nur, wenn du den Knopf drückst, der ihn baut.

Vom funktionierenden Muster zum funktionierenden Code

Gebaut fürs Debuggen, nicht für die Demo

Log-Parsing, das eine kaputte Zeile überleben muss, Validierung, die ebenso ablehnen wie annehmen muss, ein Suchen-und-Ersetzen über eine ganze Codebasis, bei dem $1 an der richtigen Stelle landen muss, und der Moment, in dem du das vierzig Zeichen lange Muster von jemand anderem erbst und wissen musst, was es tut, bevor du es anfasst. Der Erklärbaum, die Positionen und die Gruppentabelle sind für genau diesen Moment.

Die Engine ist die, gegen die du ausliefern wirst

Die Suche benutzt das RegExp deines eigenen Browsers, was du siehst, ist also genau das, was dein JavaScript tun wird — einschließlich der Teile, die sich unterscheiden. Deshalb prüft das Werkzeug die Unterstützung für Lookbehind und unicodeSets, statt sie vorauszusetzen. Beim Export nach Python, Go oder Rust werden die Unterschiede benannt, statt still ein Snippet zu erzeugen, das nicht kompiliert.

Häufige Fragen

QWerden mein Muster oder mein Testtext irgendwohin geschickt?

Nein. Alles läuft in JavaScript in deinem Tab, auch die Dateien, die du öffnest: sie werden mit dem FileReader des Browsers gelesen und nie hochgeladen. Du kannst die Internetverbindung trennen, das Werkzeug funktioniert weiter.

QWas passiert, wenn ich ein Muster schreibe, das nie fertig wird?

Es wird beendet. Die Suche läuft in einem Web Worker mit Zwei-Sekunden-Wachhund; antwortet der Worker nicht rechtzeitig, wird er terminiert und ein frischer nimmt seinen Platz ein. Das zählt mehr, als es klingt: gemessen auf derselben Engine, die dein Browser benutzt, lief (a+)+$ gegen 31 Zeichen über vier Minuten. Auf dem Haupt-Thread ist das ein Tab, den du nicht zurückbekommst.

QWelche Regex-Engine wird benutzt?

Das native RegExp deines Browsers, was du testest, ist also genau das, was dein JavaScript tun wird. Wo die Unterstützung schwankt, prüft das Werkzeug nach, statt zu raten: Lookbehind (Safari hat es erst in 16.4 nachgereicht), das v-Flag für unicodeSets und das d-Flag für die Positionen der Gruppen. Fehlt eines, wird es dir gesagt, statt dir einen verwirrenden Fehler zu zeigen.

QWarum ist die Musteranalyse ein Baum?

Weil eine flache Liste nicht sagen kann, was worin steckt, und weil ein Tokenizer dort falschliegt, wo ein Parser richtigliegt: (?<year>\d{4}) ist eine benannte Gruppe, keine Erfassungsgruppe gefolgt von einem optionalen Zeichen. Jede Zeile ist mit genau den Zeichen verknüpft, die sie beschreibt, beim Überfahren werden sie im Muster hervorgehoben.

QUnterstützt die Ersetzung $1 und benannte Gruppen?

Ja: $1 bis $99, $<name>, $& für den ganzen Treffer, $` und $' für den Text drumherum und $$ für ein wörtliches Dollarzeichen. Jedes Token, das du tippst, steht darunter mit dem, was daraus wird, und der erzeugte Code schreibt sie in die Syntax der jeweiligen Zielsprache um — \g<name> für Python, ${name} für Java und C#.

QKann ich es mit einer großen Datei benutzen?

Ja, aber ab 40.000 Zeichen wertet das Werkzeug nicht mehr von selbst neu aus und wartet darauf, dass du auf Ausführen drückst — eine große Datei bei jedem Tastendruck zu durchsuchen ist verschwendete Arbeit. Du kannst den Live-Modus auch bei jeder Größe ausschalten und ganz manuell bleiben.

QWarum kommt der erzeugte Go-Code mit einer Warnung?

Go und Rust benutzen RE2, das von Bauart her lineare Laufzeit hat und deshalb weder Lookahead noch Lookbehind noch Rückverweise kennt. Benutzt dein Muster eines davon, wird das Snippet trotzdem gezeigt, aber mit dem Hinweis, dass es so nicht kompiliert — was nützlicher ist als ein Snippet, das still scheitert.

QWas bedeuten die Farben im Testtext?

Jeder Treffer ist fuchsia umrandet, der ausgewählte heller. Innerhalb des ausgewählten bekommen die Erfassungsgruppen eigene violette Bereiche, du siehst also genau, welche Zeichen in $1 gelandet sind. Halte Alt gedrückt, um alle Hervorhebungen auszublenden und den Text so zu lesen, wie er wirklich ist.

Verwandte Suchanfragen

Regex-Testerregulären Ausdruck testenRegex-DebuggerRegex erklärenRegex-Baukasten onlinemit Regex ersetzenkatastrophales BacktrackingRegex nach PythonJavaScript-Regex-Testerbenannte Erfassungsgruppen
Teil der oLoveTools-Suite
oLoveTools

Eine kostenlose, private, lokale Werkbank für reguläre Ausdrücke.

© 2026 oLoveToolsÜber uns

RegexFlow | Kostenloser Regex-Tester, Debugger & Erklärer

Kostenloser Regex-Tester mit Live-Hervorhebung, Positionen der Erfassungsgruppen, Erklärung als Syntaxbaum, Backtracking-Warnungen und Export nach Python, Go, Java und mehr. 100% im Browser.

Häufige Fragen

Werden mein Muster oder mein Testtext irgendwohin geschickt?

Nein. Alles läuft in JavaScript in deinem Tab, auch die Dateien, die du öffnest: sie werden mit dem FileReader des Browsers gelesen und nie hochgeladen. Du kannst die Internetverbindung trennen, das Werkzeug funktioniert weiter.

Was passiert, wenn ich ein Muster schreibe, das nie fertig wird?

Es wird beendet. Die Suche läuft in einem Web Worker mit Zwei-Sekunden-Wachhund; antwortet der Worker nicht rechtzeitig, wird er terminiert und ein frischer nimmt seinen Platz ein. Das zählt mehr, als es klingt: gemessen auf derselben Engine, die dein Browser benutzt, lief (a+)+$ gegen 31 Zeichen über vier Minuten. Auf dem Haupt-Thread ist das ein Tab, den du nicht zurückbekommst.

Welche Regex-Engine wird benutzt?

Das native RegExp deines Browsers, was du testest, ist also genau das, was dein JavaScript tun wird. Wo die Unterstützung schwankt, prüft das Werkzeug nach, statt zu raten: Lookbehind (Safari hat es erst in 16.4 nachgereicht), das v-Flag für unicodeSets und das d-Flag für die Positionen der Gruppen. Fehlt eines, wird es dir gesagt, statt dir einen verwirrenden Fehler zu zeigen.

Warum ist die Musteranalyse ein Baum?

Weil eine flache Liste nicht sagen kann, was worin steckt, und weil ein Tokenizer dort falschliegt, wo ein Parser richtigliegt: (?<year>\d{4}) ist eine benannte Gruppe, keine Erfassungsgruppe gefolgt von einem optionalen Zeichen. Jede Zeile ist mit genau den Zeichen verknüpft, die sie beschreibt, beim Überfahren werden sie im Muster hervorgehoben.

Unterstützt die Ersetzung $1 und benannte Gruppen?

Ja: $1 bis $99, $<name>, $& für den ganzen Treffer, $` und $' für den Text drumherum und $$ für ein wörtliches Dollarzeichen. Jedes Token, das du tippst, steht darunter mit dem, was daraus wird, und der erzeugte Code schreibt sie in die Syntax der jeweiligen Zielsprache um — \g<name> für Python, ${name} für Java und C#.

Kann ich es mit einer großen Datei benutzen?

Ja, aber ab 40.000 Zeichen wertet das Werkzeug nicht mehr von selbst neu aus und wartet darauf, dass du auf Ausführen drückst — eine große Datei bei jedem Tastendruck zu durchsuchen ist verschwendete Arbeit. Du kannst den Live-Modus auch bei jeder Größe ausschalten und ganz manuell bleiben.

Warum kommt der erzeugte Go-Code mit einer Warnung?

Go und Rust benutzen RE2, das von Bauart her lineare Laufzeit hat und deshalb weder Lookahead noch Lookbehind noch Rückverweise kennt. Benutzt dein Muster eines davon, wird das Snippet trotzdem gezeigt, aber mit dem Hinweis, dass es so nicht kompiliert — was nützlicher ist als ein Snippet, das still scheitert.

Was bedeuten die Farben im Testtext?

Jeder Treffer ist fuchsia umrandet, der ausgewählte heller. Innerhalb des ausgewählten bekommen die Erfassungsgruppen eigene violette Bereiche, du siehst also genau, welche Zeichen in $1 gelandet sind. Halte Alt gedrückt, um alle Hervorhebungen auszublenden und den Text so zu lesen, wie er wirklich ist.

Verwandte Suchanfragen

Regex-Tester, regulären Ausdruck testen, Regex-Debugger, Regex erklären, Regex-Baukasten online, mit Regex ersetzen, katastrophales Backtracking, Regex nach Python, JavaScript-Regex-Tester, benannte Erfassungsgruppen