So verwenden Sie es
- Tippen Sie das Muster ohne Schrägstriche in Muster ein. Das Beispiel findet Datumsangaben wie 2026-11-10.
- Setzen Sie die Haken bei den Flags, die Sie brauchen. g findet jeden Treffer, i ignoriert Groß- und Kleinschreibung, und m sowie s ändern, wie Zeilenumbrüche gelesen werden.
- Fügen Sie Ihren Testtext ein. Die Treffer sind sofort markiert, und die Liste unter dem Text nennt die Position und die Gruppen jedes Treffers.
- Tippen Sie einen Text in Ersetzen durch, um das Ergebnis zu sehen, und drücken Sie dann Kopieren, um es zu übernehmen.
So arbeitet die Suche hier
Die Seite verwendet die Engine für reguläre Ausdrücke, die in Ihrem Browser eingebaut ist, dieselbe, die JavaScript nutzt. Treffer werden der Reihe nach vom Textanfang an gefunden. Die angezeigte Position ist die Anzahl der Zeichen vor dem Treffer, beginnend bei 0, gezählt in UTF-16-Einheiten, wie JavaScript Text zählt.
Die Suche läuft in einem Hintergrundprozess Ihres Browsers, damit die Seite reagiert. Eine Suche endet nach 10.000 Treffern, und ein Text mit mehr als 200.000 Zeichen wird nicht durchsucht. Ein Muster, das nichts treffen kann, etwa x*, rückt nach jedem leeren Treffer um ein Zeichen weiter, daher endet die Suche immer. Eine Suche, die länger als 2 Sekunden dauert, wird angehalten. Siehe dazu den Abschnitt über katastrophales Zurückgehen.
- Ohne das Flag g wird nur der erste Treffer angezeigt, wie es String.match() tut.
- Das Flag u liest ein Emoji oder ein anderes Zeichen außerhalb der Grundebene als ein Zeichen.
- Das Flag d fügt der Liste Anfang und Ende jeder Gruppe hinzu.
Katastrophales Zurückgehen und die Grenze von 2 Sekunden
Eine Engine für reguläre Ausdrücke probiert die Wege durch, auf denen ein Muster passen könnte, einen nach dem anderen. Bei manchen Mustern, vor allem einer wiederholten Gruppe innerhalb einer anderen wiederholten Gruppe wie (a+)+, wächst die Zahl der Wege sehr schnell: Jedes zusätzliche Zeichen kann die Arbeit verdoppeln. Das geschieht meist dann, wenn der Text fast passt und erst ganz am Ende scheitert.
Zum Beispiel kann das Muster (a+)+$ auf einem Text aus vielen Buchstaben a, gefolgt von einem Ausrufezeichen, nicht passen, weil $ das Textende verlangt. Die Engine probiert trotzdem jede Aufteilung der Buchstaben davor aus, bevor sie aufgibt. Bei etwa 26 Buchstaben kann die Suche auf einem üblichen Computer schon eine Sekunde oder mehr dauern, und jeder weitere Buchstabe macht sie deutlich langsamer. Die Zeit hängt vom Gerät ab.
Diese Seite führt jede Suche in einem Hintergrundprozess aus und hält sie nach 2 Sekunden an, mit einer Meldung. Der Rest der Seite arbeitet weiter, sodass Sie das Muster oder den Text ändern und erneut prüfen können.
- Setzen Sie keine Wiederholung in eine andere Wiederholung über dieselben Zeichen: Schreiben Sie (a+)$ statt (a+)+$. Auf demselben Text endet das sichere Muster sofort.
- Seien Sie genau: Verwenden Sie [a-z] oder \d+ in einer Gruppe statt eines Punktes, damit sich Teile eines Treffers nicht auf viele Arten überlappen können.
- Prüfen Sie das Muster zuerst an einer kurzen Probe des Textes, dann am ganzen Text.
- Verankern Sie das Muster, wo es geht: ^ am Anfang und $ am Ende hindern die Engine daran, jeden Startpunkt auszuprobieren.
Ersetzungsmuster
Der Ersetzungstext folgt den Regeln von String.replace() in JavaScript. Ein Dollarzeichen beginnt einen Code, der durch den gefundenen Text ersetzt wird:
| Sie schreiben | Es wird ersetzt durch |
|---|---|
| $1, $2 und so weiter | Den Text der nummerierten Gruppe |
| $& | Den ganzen Treffer |
| $` | Den Text vor dem Treffer |
| $' | Den Text nach dem Treffer |
| $$ | Ein einzelnes Dollarzeichen |
| Dollarzeichen, Kleiner-als-Zeichen, Gruppenname und Größer-als-Zeichen | Den Text der benannten Gruppe |
Unterschiede zu PCRE und .NET
Ein Muster für PCRE (PHP, viele Linux-Werkzeuge) oder für .NET (C#, Visual Basic) funktioniert hier meist, aber einige Funktionen gibt es nur in einer der Engines. Die Tabelle nennt die wichtigsten.
| Funktion | JavaScript (diese Seite) | PCRE und .NET |
|---|---|---|
| Atomare Gruppen und besitzergreifende Quantoren | Nicht verfügbar | Atomare Gruppen in PCRE und .NET; besitzergreifende Quantoren wie a++ in PCRE |
| Die Anker \A, \Z und \z | Nicht verfügbar: ^ und $ verwenden | Verfügbar |
| Eine benannte Gruppe in der Form (?P<…>) | Nicht verfügbar | In PCRE verfügbar |
| Eine Option im Muster wie (?i) | Nicht verfügbar: stattdessen das Flag setzen | In .NET verfügbar |
| Text mit \K aus dem Treffer heraushalten | Nicht verfügbar | In PCRE verfügbar |
| Eine benannte Gruppe ersetzen | Dollarzeichen, Kleiner-als-Zeichen, Name, Größer-als-Zeichen | .NET verwendet Dollarzeichen, geschweifte Klammer, Name, geschweifte Klammer |
Rechenbeispiel: drei Datumsangaben in einem Text
Das Beispielmuster hat drei benannte Gruppen: vier Ziffern für das Jahr, zwei für den Monat und zwei für den Tag, getrennt durch Bindestriche. Der Text enthält drei Datumsangaben, die an den Positionen 14, 34 und 50 treffen, gezählt ab 0 beim ersten Zeichen.
Mit der Ersetzung aus den drei Gruppennamen day, month und year (jeweils ein Dollarzeichen und der Name zwischen Kleiner-als- und Größer-als-Zeichen) werden die drei Datumsangaben zu 10.11.2026, 03.12.2026 und 15.01.2027 umgeschrieben. Das Ergebnis lautet: Invoice dated 10.11.2026, paid on 03.12.2026. Due 15.01.2027.
Häufig gestellte Fragen
Welche Variante regulärer Ausdrücke verwendet dieser Tester?
Er verwendet die JavaScript-Engine Ihres Browsers. Die meisten Muster zum Suchen, Prüfen und Bereinigen von Text funktionieren in JavaScript, PCRE und .NET gleich, aber einige Funktionen unterscheiden sich, wie der Abschnitt über Unterschiede zeigt.
Warum endet die Liste bei 10.000 Treffern?
Treffer werden in der Reihenfolge gesammelt. Eine sehr lange Liste wäre langsam zu zeichnen und zu lang zum Lesen. Trifft ein Muster öfter, werden die ersten 10.000 Treffer angezeigt, und die Seite meldet, dass die Suche angehalten wurde.
Warum wird mein Text abgelehnt, wenn er länger als 200.000 Zeichen ist?
Ein sehr langer Text macht die Seite langsam, und ein Muster kann darauf lange brauchen. Testen Sie das Muster zuerst an einem Teil des Textes, dann am Rest, oder teilen Sie den Text in kleinere Stücke.
Warum lässt die Markierung manche Treffer aus?
Ein Treffer aus keinem Zeichen, etwa die leere Stelle, die x* zwischen Buchstaben findet, hat nichts zum Markieren. Er bleibt mit seiner Position in der Liste, sodass Sie trotzdem sehen, wo er ist.
Sendet der Tester meinen Text an einen Server?
Nein. Die Suche läuft in Ihrem Browser, und die Seite speichert nicht, was Sie tippen, und sendet es nirgendwohin. Wenn Sie die Seite schließen, ist es weg.
Was bedeutet die Meldung über ein ungültiges Muster?
Das Muster lässt sich nicht als regulärer Ausdruck für JavaScript lesen. Die Meldung kommt von der Engine, auf Englisch, und nennt das Problem, etwa eine Klammer, die nie geschlossen wird.
Kann ich hier ein Muster testen, das für PCRE oder .NET geschrieben wurde?
Oft ja, wenn es nur gängige Funktionen nutzt. Hat es eine atomare Gruppe, einen besitzergreifenden Quantor, \A oder \z oder eine Option im Muster, schreiben Sie diesen Teil zuerst für JavaScript um. Die Tabelle zeigt, welche Funktionen das sind.
Warum meldet die Seite, dass das Muster zu lange gebraucht hat?
Die Suche war auf diesem Text nicht innerhalb von 2 Sekunden fertig, daher hat die Seite sie angehalten. Meist liegt eine Wiederholung innerhalb einer anderen vor, etwa (a+)+, bei einem Text, der fast passt. Der Abschnitt über katastrophales Zurückgehen zeigt eine sicherere Form.
Quellen
- MDN (englisch): Reguläre Ausdrücke in JavaScript, mit Flags und Gruppen
- MDN (englisch): String.prototype.replace(), die Ersetzungsmuster
- PCRE2 (englisch): Mustersyntax der PCRE-Dokumentation
- Microsoft (englisch): Kurzreferenz der Sprache für reguläre Ausdrücke in .NET
Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.