Alle Text-Werkzeuge

> text regex

Regex testen

Ein Suchmuster (regulärer Ausdruck) ausprobieren, bevor du es in Code oder beim Suchen und Ersetzen einsetzt: Treffer werden im Text markiert, Gruppen aufgelistet.

Nur das Muster, ohne Schrägstriche außen und ohne Schalter.

Schalter

Ohne g zeigt JavaScript nur den ersten Treffer. Den Schalter y (klebrig) gibt es hier mit Absicht nicht: Er sucht nur an einer einzigen Stelle, die Trefferliste wäre fast immer leer oder irreführend.

0 von 200.000 Zeichen.

Mehr Beispiel-Muster
Noch nichts eingegebenTippe oben ein Muster ein und füge darunter einen Testtext ein. Die Treffer erscheinen beim Tippen.

Treffer im Text

Trefferliste

    $1 ist Gruppe 1, $<name> eine benannte Gruppe, $& der ganze Treffer, $$ ein Dollarzeichen. Leer heißt: Treffer werden gelöscht. Für einen Zeilenumbruch drückst du Enter; ein eingetipptes \n bleibt in JavaScript Text.

    Beispiel-Muster zum Übernehmen

    Ein Klick lädt Muster, Schalter und Beispieltext, dein bisheriger Inhalt wird ersetzt. Diese Muster prüfen nur grob, das steht jeweils dabei.

      Kurzreferenz: Zeichen, Mengen, Gruppen, Anker

      Zeichen

      .
      Ein beliebiges Zeichen, nur kein Zeilenumbruch (mit dem Schalter s auch der).
      \d
      Eine Ziffer von 0 bis 9.
      \D
      Alles außer einer Ziffer.
      \w
      Ein Buchstabe von a bis z (ohne Umlaute), eine Ziffer oder _.
      \W
      Alles außer diesen Zeichen.
      \s
      Leerraum: Leerzeichen, Tab, Zeilenumbruch.
      \S
      Alles außer Leerraum.
      \p{L}
      Jeder Buchstabe, auch Umlaute. Geht nur mit dem Schalter u.
      \. \( \$
      Ein Sonderzeichen als normales Zeichen: Backslash davor.
      \n \t
      Zeilenumbruch, Tabulator.

      Auswahl in eckigen Klammern

      [abc]
      Eines der Zeichen a, b oder c.
      [^abc]
      Jedes Zeichen außer a, b und c.
      [a-z] [0-9]
      Ein Zeichen aus einem Bereich.

      Mengen

      *
      Null Mal oder öfter.
      +
      Mindestens einmal.
      ?
      Keinmal oder einmal (optional).
      {3}
      Genau dreimal.
      {2,5}
      Zwei- bis fünfmal. {2,} heißt: mindestens zweimal.
      *? +?
      So wenig wie möglich statt so viel wie möglich.

      Gruppen und Alternativen

      (…)
      Gruppe. Was sie trifft, steht in der Trefferliste als Gruppe 1, 2 und so weiter.
      (?:…)
      Gruppe ohne Nummer, nur zum Zusammenfassen.
      (?<name>…)
      Gruppe mit Namen.
      \1 \k<name>
      Steht noch einmal genau das, was die Gruppe getroffen hat.
      a|b
      a oder b.

      Vorschau und Rückschau (schauen nur, verbrauchen nichts)

      (?=…)
      Danach kommt …
      (?!…)
      Danach kommt nicht …
      (?<=…)
      Davor steht …
      (?<!…)
      Davor steht nicht …

      Anker

      ^
      Anfang des Textes (mit dem Schalter m: jeder Zeile).
      $
      Ende des Textes (mit dem Schalter m: jeder Zeile).
      \b \B
      Wortgrenze, oder keine. Umlaute zählen dabei nicht als Wortzeichen.

      Im Ersetzungstext

      $1 $2
      Gruppe 1, Gruppe 2 und so weiter (bis 99).
      $<name>
      Benannte Gruppe.
      $&
      Der ganze Treffer.
      $` $'
      Der Text vor dem Treffer, der Text nach dem Treffer.
      $$
      Ein Dollarzeichen.
      Das ist der JavaScript-DialektGetestet wird so, wie dein Browser Muster versteht. In PHP, Python, Java, Excel oder Google Tabellen weichen einige Schreibweisen ab, zum Beispiel bei benannten Gruppen, bei der Rückschau und bei den Schaltern. Prüfe das Muster am Ende noch einmal dort, wo es laufen soll.

      Mehr für Text: Zwei Fassungen vergleichen · Base64, URL und HTML kodieren · Zeichen zählen, Zeilen sortieren

      Muster und Text bleiben auf diesem Gerät. Nichts wird gespeichert oder übertragen.

      So funktioniert's
      1. 01Muster oben eintippen, darunter den Testtext einfügen. Die Treffer werden beim Tippen im Text markiert, aufeinanderfolgende abwechselnd, damit du sie auseinanderhältst.
      2. 02Die Trefferliste nennt Start, Länge und Text jedes Treffers und den Inhalt der Gruppen, mit Nummer und Namen.
      3. 03Bei „Ersetzen durch" siehst du sofort das Ergebnis und kannst es kopieren.

      Das Rechnen läuft in einem eigenen Hintergrundprozess der Seite (Web Worker), nicht in der Seite selbst. Braucht ein Muster länger als 1,5 Sekunden, wird es abgebrochen und die Seite sagt das. Das passiert bei Mustern, die viel zu viele Wege ausprobieren („catastrophic backtracking“), zum Beispiel (a+)+$ gegen 32 mal a und ein b. Die 1,5 Sekunden sind eine feste Grenze auf deinem Gerät, keine Aussage darüber, ob das Muster in deiner Anwendung schnell genug wäre. Kann dein Browser keinen Worker starten, rechnet das Werkzeug lieber gar nicht, statt die Seite zu riskieren.

      Grenzen: Der Testtext darf bis zu 200.000 Zeichen lang sein, das Muster bis zu 10.000. In der Trefferliste stehen höchstens 1.000 Treffer, einzelne Treffer und Gruppen sind dort nach 500 Zeichen gekürzt. Beim Ersetzen zählen alle Treffer, das Ergebnis darf höchstens 1.000.000 Zeichen lang werden. Start und Länge zählen wie in JavaScript ab 0 und in UTF-16-Einheiten, ein Emoji zählt als 2. Ohne den Schalter u trifft ein Punkt nur eine Hälfte davon, mit u das ganze Emoji; eine einzelne Hälfte zeigt die Trefferliste als \uD83D oder ähnlich. Zeilenumbrüche im Testtext zählen als ein Zeichen (\n), auch wenn dein Text aus Windows kommt: Das Textfeld des Browsers vereinheitlicht sie.

      Die Schalter g, i, m, s und u sind eingebaut. y fehlt mit Absicht (siehe oben), ebenso d (Positionen der Gruppen) und v (erweiterte Klassen). Ohne g zeigt und ersetzt JavaScript nur den ersten Treffer, das macht das Werkzeug genauso. In PHP, Python und Java gibt es den Schalter g nicht: Dort wählt die Funktion, ob du einen oder alle Treffer bekommst (etwa preg_match_all oder re.findall). Python schreibt benannte Gruppen als (?P<name>…) und Gruppen im Ersetzungstext als \1. Die Rückschau erlaubt JavaScript mit wechselnder Länge, PHP, Python und Java verlangen oft eine feste. Google Tabellen (dort läuft RE2) kennt weder Vor- noch Rückschau noch Rückverweise wie \1. Das Muster \w kennt in JavaScript nur a bis z, Ziffern und _, keine Umlaute: Für Buchstaben aller Sprachen nimmst du \p{L} mit dem Schalter u.