Zum Inhalt springen

Kostenloser Online-Regex-Tester & Validator - Muster sofort testen

Testen und validieren Sie reguläre Ausdrücke online mit Echtzeit-Hervorhebung. Kostenloser Regex-Muster-Tester mit Syntaxvalidierung, Übereinstimmungsergebnissen und Speicherfunktion. Testen Sie Regex jetzt!

Regex Muster Tester

Übereinstimmungsergebnisse

Muster und Testtext eingeben, um Ergebnisse zu sehen

Muster speichern

Gespeicherte Muster

Noch keine Muster gespeichert

Regex Symbole Anleitung

.Passt auf beliebiges Zeichen außer Zeilenumbruch
\dPasst auf beliebige Ziffer (0-9)
\DPasst auf beliebiges Nicht-Zifferzeichen
\wPasst auf beliebiges Wortzeichen (a-z, A-Z, 0-9, _)
\WPasst auf beliebiges Nicht-Wortzeichen
\sPasst auf beliebiges Leerzeichen
\SPasst auf beliebiges Nicht-Leerzeichen
^Passt auf Zeilenanfang
$Passt auf Zeilenende
*Passt auf 0 oder mehr des vorherigen Zeichens
+Passt auf 1 oder mehr des vorherigen Zeichens
?Passt auf 0 oder 1 des vorherigen Zeichens
{n}Passt auf genau n des vorherigen Zeichens
{n,}Passt auf mindestens n des vorherigen Zeichens
{n,m}Passt auf zwischen n und m des vorherigen Zeichens
[abc]Passt auf eines der Zeichen in den Klammern
[^abc]Passt auf beliebiges Zeichen außerhalb der Klammern
(abc)Gruppiert mehrere Token und erfasst die Übereinstimmung
a|bPasst auf a oder b
\bPasst auf Wortgrenze
Ladekalkulator...
📚

Dokumentation

Was ist ein Regex-Tester?

Ein Regex-Tester ist ein Werkzeug, das einen regulären Ausdruck anhand eines Textausschnitts prüft und anzeigt, worauf er zutrifft. Ein regulärer Ausdruck, kurz Regex, ist eine kurze Zeichenfolge, die ein Muster in einem Text beschreibt, etwa „drei aufeinanderfolgende Ziffern“ oder „jedes Wort, das mit einem Großbuchstaben beginnt“. Mit diesem Regex-Validator lassen sich ein Muster und ein Testtext eingeben und anschließend die Treffer sofort hervorgehoben anzeigen, ohne Code schreiben zu müssen.

Reguläre Ausdrücke werden in vielen Programmiersprachen verwendet, um Texte zu durchsuchen, zu prüfen, ob Benutzereingaben das richtige Format haben, und bestimmte Teile aus einem größeren Textblock herauszulösen. Die Syntax ist kompakt, aber leicht falsch anzuwenden. Daher hilft das Testen eines Musters vor seiner Verwendung in einem Programm, Fehler frühzeitig zu erkennen.

So testet man einen regulären Ausdruck online

  1. Ein Muster eingeben. Den Regex in das Musterfeld eingeben. Das Werkzeug prüft die Syntax während der Eingabe und zeigt eine Fehlermeldung an, wenn das Muster ungültig ist, etwa wenn eine eckige Klammer oder runde Klammer nicht geschlossen wurde.
  2. Flags auswählen. Flags ändern, wie das Muster angewendet wird (siehe unten).
  3. Testtext eingeben. Den zu durchsuchenden Text in das Testtextfeld eingeben oder dort einfügen.
  4. Ergebnisse ablesen. Treffer werden im Text hervorgehoben, und das Werkzeug gibt an, wie viele Treffer gefunden wurden. Wenn Testtext vorhanden ist, wird außerdem angegeben, ob das Muster vom Anfang bis zum Ende auf den gesamten Text zutrifft oder nur auf einen Teil davon.
  5. Ein Muster speichern. Ein Muster kann mit einer kurzen Bezeichnung gespeichert und später wiederverwendet werden. Gespeicherte Muster werden im Browser, nicht auf einem Server, aufbewahrt und erscheinen daher nur auf demselben Gerät und in demselben Browser.
  6. Ergebnisse kopieren. Der gefundene Text oder das Muster selbst kann mit einem Klick in die Zwischenablage kopiert werden.

Regex-Flags

Ein Flag ist ein einzelner Buchstabe, der nach einem Muster hinzugefügt wird und dessen Verhalten ändert. Dieses Werkzeug unterstützt vier Flags, einzeln oder kombiniert:

FlagBezeichnungAuswirkung
gGlobalFindet jeden Treffer im Text, statt nach dem ersten Treffer anzuhalten.
iGroß- und Kleinschreibung ignorierenIgnoriert Unterschiede zwischen Groß- und Kleinschreibung.
mMehrzeiligSorgt dafür, dass ^ und $ mit dem Anfang und Ende jeder Zeile übereinstimmen, nicht nur mit dem Anfang und Ende des gesamten Textes. Dadurch ändert sich, wo Treffer gefunden werden, nicht aber die unten beschriebene Prüfung des gesamten Textes.
sPunkt entspricht allemSorgt dafür, dass . auch mit Zeilenumbruchzeichen übereinstimmt.

Flags können kombiniert werden, zum Beispiel gi für global und ohne Beachtung der Groß- und Kleinschreibung oder gms für global, mehrzeilig und mit Punkten, die auch Zeilenumbruchzeichen erfassen.

So findet das Werkzeug Treffer

Der Matcher sucht immer nach jedem Vorkommen des Musters im Text. Deshalb verhält sich die Trefferzählung so, als wäre das globale Flag aktiviert, auch wenn es im Auswahlfeld nicht ausgewählt ist. Jeder Treffer wird mit seiner Position und Länge erfasst. Anschließend wird der Originaltext in passende und nicht passende Teile aufgeteilt, damit die Treffer hervorgehoben werden können.

Um zu prüfen, ob ein Muster mit dem gesamten Text übereinstimmt, setzt das Werkzeug das Muster in eine nicht erfassende Gruppe und versieht es mit Ankern: ^(?:pattern)$. Die Gruppierung ist wichtig, weil | (Alternation) eine geringere Bindungsstärke als die Anker hat. Ohne die Gruppe würde ein Muster wie cat|dog mit den Ankern ^cat|dog$ tatsächlich „beginnt mit cat oder endet mit dog“ bedeuten, nicht „der gesamte Text ist cat oder dog“.

Bei dieser Prüfung wird außerdem das mehrzeilige Flag entfernt. Wenn m gesetzt ist, stimmen ^ und $ an jedem Zeilenumbruch überein. Die Prüfung würde daher beantworten: „Stimmt eine beliebige Zeile überein?“ statt „Stimmt der gesamte Text überein?“. Das Werkzeug entfernt m für diese Prüfung und behält i und s bei, weil diese beiden Flags ändern, worauf das Muster zutrifft, nicht die Position der Anker. Die Antwort bezieht sich daher immer auf den vollständigen Text einschließlich seiner Zeilenumbrüche.

Rechenbeispiel

Muster: \d+ (eine oder mehrere Ziffern), Flag: g, Testtext: Room 12 has 5 chairs.

  • Gefundene Treffer: 12 und 5, daher beträgt die Trefferzahl 2.
  • Prüfung des gesamten Textes: Das Muster passt nicht auf den gesamten Text, weil dieser auch Buchstaben und Leerzeichen enthält.

Wenn der Testtext stattdessen in 12345 geändert wird, stimmt dasselbe Muster mit der gesamten Zeichenfolge überein, sodass die Prüfung des gesamten Textes „wahr“ ergibt.

Referenz zur Regex-Syntax

Zeichenübereinstimmung

SymbolBedeutungBeispielÜbereinstimmungen
.Jedes Zeichen außer einem Zeilenumbrucha.c„abc“, „adc“, „a1c“
\dJede Ziffer von 0 bis 9\d{3}"123", "456"
\DJedes Zeichen, das keine Ziffer ist\D+„abc“, „xyz“
\wJeder Buchstabe, jede Ziffer oder jeder Unterstrich\w+„abc123“, „test_123“
\WJedes Zeichen, das kein Buchstabe, keine Ziffer und kein Unterstrich ist\W+"!@#"
\sJedes Leerraumzeichena\sb„a b“
\SJedes Zeichen, das kein Leerraumzeichen ist\S+„abc“

Positionsanker

SymbolBedeutungBeispielÜbereinstimmungen
^Anfang einer Zeile^abc„abc“ am Anfang einer Zeile
$Ende einer Zeileabc$„abc“ am Ende einer Zeile
\bWortgrenze\bword\b„word“ als eigenständiges Wort

Quantifizierer

SymbolBedeutungBeispielÜbereinstimmungen
*Keinmal oder beliebig oft das vorherige Elementa*b„b“, „ab“, „aab“
+Einmal oder beliebig oft das vorherige Elementa+b„ab“, „aab“
?Keinmal oder einmal das vorherige Elementcolou?r„color“, „colour“
{n}Genau n-mal das vorherige Elementa{3}„aaa“
{n,}Mindestens n-mal das vorherige Elementa{2,}„aa“, „aaa“
{n,m}Zwischen n- und m-mal das vorherige Elementa{2,4}„aa“, „aaa“, „aaaa“

Zeichensätze und Gruppen

SymbolBedeutungBeispielÜbereinstimmungen
[abc]Ein beliebiges der in den Klammern aufgeführten Zeichen[aeiou]ein einzelner Vokal
[^abc]Jedes Zeichen, das nicht in den Klammern aufgeführt ist[^aeiou]jedes Zeichen, das kein Vokal ist
(abc)Gruppiert Zeichen und erfasst den Treffer(abc)+„abc“, „abcabc“
a\bStimmt mit a oder b übereincat\

Zwei weitere Funktionen sollte man kennen. Ein Lookahead, geschrieben als a(?=b), stimmt nur dann mit „a“ überein, wenn danach „b“ folgt, ohne „b“ in den Treffer einzubeziehen. Ein Lookbehind, geschrieben als (?<=a)b, stimmt nur dann mit „b“ überein, wenn direkt davor „a“ steht.

Häufige Musterbeispiele

Diese Muster können in das Werkzeug eingefügt werden, um ihr Verhalten anhand von Beispieltexten zu sehen.

Nur Ziffern: ^\d+$ stimmt mit einer Zeichenfolge überein, die ausschließlich aus Ziffern besteht, etwa „48210“, und lehnt alles ab, was einen Buchstaben oder ein Leerzeichen enthält.

E-Mail-Adresse (einfache Prüfung): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ stimmt mit Adressen im Format name@domain.tld überein, etwa „user@example.com“. Es handelt sich um eine einfache Prüfung, nicht um das vollständige E-Mail-Format der Internetstandards. Daher schlagen einige ungewöhnliche, aber gültige Adressen fehl.

US-amerikanische Telefonnummer: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ stimmt mit Formaten wie „(123) 456-7890“, „123-456-7890“ und „1234567890“ überein.

Datum im Format JJJJ-MM-TT: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ prüft, ob der Monat zwischen 01 und 12 und der Tag zwischen 01 und 31 liegt. Es wird nicht geprüft, ob der Tag für den jeweiligen Monat gültig ist. Daher wird „2024-02-30“ akzeptiert, obwohl der Februar nie 30 Tage hat.

Häufig gestellte Fragen

Was ist ein regulärer Ausdruck? Ein regulärer Ausdruck ist eine Zeichenfolge, die ein Suchmuster definiert. Er wird in den meisten Programmiersprachen und Texteditoren zum Suchen, Abgleichen und Bearbeiten von Text verwendet.

Was bewirkt das globale Flag? Ohne das globale Flag endet eine Suche normalerweise nach dem ersten Treffer. Mit dem globalen Flag (g) wird die Suche fortgesetzt und jeder Treffer im Text gemeldet. Dieses Werkzeug sucht beim Zählen unabhängig vom ausgewählten Flag immer nach allen Treffern.

Wie gleiche ich einen wörtlichen Punkt oder ein anderes Sonderzeichen ab? Einen Backslash davor setzen. Beispielsweise stimmt \. mit einem wörtlichen Punkt überein, statt mit „jedem Zeichen“, was ein nicht maskiertes . bedeutet.

Was ist der Unterschied zwischen .* und .*?? .* ist gierig und stimmt mit so vielen Zeichen wie möglich überein. .*? ist träge und stimmt mit so wenigen Zeichen wie möglich überein, solange der übrige Teil des Musters weiterhin erfolgreich ist.

Warum meldet das Werkzeug, dass der Text nicht vollständig übereinstimmt, obwohl jede Zeile übereinstimmt? Bei der Prüfung des gesamten Textes wird der Text einschließlich der Zeilenumbrüche als eine Zeichenfolge behandelt. Ein Muster wie \d+ stimmt jeweils mit jeder Zeile von 12 und 34 überein, aber die beiden Zeilen und der dazwischenliegende Zeilenumbruch bestehen nicht ausschließlich aus Ziffern. Daher lautet die Antwort für den vollständigen Text „nein“. Um Text abzugleichen, der sich über mehrere Zeilen erstreckt, muss das Muster auch die Zeilenumbrüche abdecken, etwa mit [\s\S]+.

Wie prüfe ich, ob eine ganze Zeichenfolge mit einem Muster übereinstimmt und nicht nur ein Teil davon? Am Anfang des Musters ^ und am Ende $ hinzufügen, zum Beispiel ^[0-9]+$ für eine Zeichenfolge, die nur aus Ziffern besteht.

Entspricht dieser Tester den Regex-Regeln anderer Programmiersprachen? Dieses Werkzeug verwendet die in JavaScript integrierte Engine für reguläre Ausdrücke. Die grundlegende Syntax, etwa Zeichenklassen und Quantifizierer, wird von verschiedenen Sprachen wie Python, Java und Perl gemeinsam verwendet. Einige Details unterscheiden sich jedoch, sodass nicht garantiert ist, dass ein hier funktionierendes Muster überall identisch funktioniert.

Referenzen

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.