Häufige Regex-Muster

Nutzen Sie ein Muster als Ausgangspunkt und testen Sie es im Zielsystem. Ein passendes Format belegt keine gültige Adresse, kein gültiges Datum und kein Konto.

Läuft lokal in deinem Browser
AnwendungsfallRegulärer AusdruckHinweise
E-Mail-Adresse ^[^\s@]+@[^\s@]+\.[^\s@]+$ Praktische Syntaxprüfung; die Zustellbarkeit muss separat bestätigt werden.
HTTP- oder HTTPS-URL ^https?:\/\/[^\s]+$ Prüft das Schema und weist Leerzeichen zurück; für eine vollständige Validierung ist ein URL-Parser erforderlich.
IPv4-Adresse ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ Akzeptiert Oktette von 0 bis 255.
UUID-Versionen 1–5 ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ Prüft die Standardform mit Bindestrichen und die RFC-Variantenbits.
Datum im ISO-Format ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ Prüft das Format YYYY-MM-DD, nicht die zulässigen Tage des jeweiligen Monats.
24-Stunden-Zeit ^(?:[01]\d|2[0-3]):[0-5]\d$ Akzeptiert Werte von 00:00 bis 23:59.
Hex-Farbe ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ Unterstützt die Schreibweisen RGB, RRGGBB und RRGGBBAA.
Semantische Version ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$ Erfasst Kernversionen sowie optionale Prerelease- und Build-Metadaten.
Ganzzahl mit Vorzeichen ^-?\d+$ Erlaubt ein optionales Minuszeichen.
Dezimalzahl ^-?(?:\d+|\d*\.\d+)$ Akzeptiert Ganzzahlen und Dezimalbrüche, einschließlich Werten wie .5.
URL-Slug ^[a-z0-9]+(?:-[a-z0-9]+)*$ Kleingeschriebene ASCII-Wörter, getrennt durch einzelne Bindestriche.
HTML-ähnliches Tag <\/?[A-Za-z][^>]*> Nur für einfache Extraktion geeignet; HTML sollte mit einem HTML-Parser verarbeitet werden.
Führende oder nachgestellte Leerzeichen ^\s+|\s+$ Verwende das globale Flag, um Leerraum an beiden Enden zu entfernen.
Leere Zeile ^\s*$ Verwende den Mehrzeilenmodus, um jede Zeile getrennt auszuwerten.
Direkt wiederholtes Wort \b([A-Za-z]+)\s+\1\b Verwende den Modus ohne Beachtung der Groß-/Kleinschreibung, wenn die Schreibweise keine Rolle spielt.

Hinweise zur Portabilität

JavaScript, PCRE, Python, Java, .NET, Go und Ruby implementieren nicht exakt dieselben Regex-Funktionen. Prüfe die Ziel-Engine, bevor du Lookbehind, benannte Gruppen, Unicode-Eigenschaften, possessive Quantifizierer oder Inline-Flags verwendest.

Normalisiere bei sicherheitsrelevanter Validierung zuerst die Eingabe, setze klare Längenbegrenzungen und verwende einen spezialisierten Parser, sofern das Datenformat einen besitzt.

So verwendest du Häufige Regex-Muster

Fünfzehn fertige Muster für die Werte, die in einem Formular, einer Logzeile oder einer Konfigurationsdatei üblicherweise geprüft werden: E-Mail-Adresse, HTTP- oder HTTPS-URL, IPv4-Adresse, UUID-Versionen 1-5, Datum im ISO-Format, 24-Stunden-Zeit, Hex-Farbe, semantische Version, Ganzzahl mit Vorzeichen, Dezimalzahl, URL-Slug, HTML-ähnliches Tag, führende oder nachgestellte Leerzeichen, leere Zeile und direkt wiederholtes Wort.

Die Tabelle ist die ganze Seite: Es gibt kein Eingabefeld und nichts auszuführen. Jede Zeile nennt, was ihr Muster prüft und was es durchlässt, denn ein Format zu treffen ist keine Validierung echter Daten. Die Datumszeile akzeptiert 2024-02-31, und die E-Mail-Zeile kann nicht wissen, ob eine Adresse Post empfängt. Nimm ein Muster also als Ausgangspunkt und teste es in der Engine, die es später ausführt.

  1. Tippe in das Suchfeld oder drücke irgendwo auf der Seite /, um die Tabelle nach Anwendungsfall, Muster oder Hinweis zu filtern.
  2. Beachte den Zähler unter dem Feld: Er nennt immer, wie viele der 15 Zeilen sichtbar sind.
  3. Drücke die Kopierschaltfläche in der Musterzelle, um genau diesen regulären Ausdruck als Klartext in die Zwischenablage zu legen.
  4. Lies vor der Übernahme den Hinweis derselben Zeile: Er benennt die Fälle, die der Ausdruck toleriert, und die, die er verpasst.
  5. Öffne den Regex-Tester, um das Muster an Beispieltext laufen zu lassen, oder den Regex-Code-Generator, um es für eine Sprache zu verpacken.

Was jedes Muster prüft – und was nicht

Im Browser nachgeprüftes Verhalten

Die IPv4-Zeile akzeptiert 0.0.0.0 und 255.255.255.255 und weist 256.1.1.1, 1.2.3 und 1.2.3.4.5 zurück. Die UUID-Zeile verlangt die Form mit Bindestrichen, eine Versionsziffer von 1 bis 5 und ein RFC-Varianten-Nibble 8, 9, a oder b, weshalb Kennungen der Version 6 und 7 nicht passen. Die Zeile für semantische Versionen akzeptiert 1.0.0, 1.0.0-alpha.1 und 1.0.0+build.1, während v1.0.0 und 01.0.0 scheitern.

Mehrere Zeilen sind bewusst locker. 2024-02-31 passiert die Datumszeile, weil das Muster Monatslängen nicht kennt, 2024-13-01 nicht. Die Zeitzeile erwartet zwei Ziffern: 09:30 passt, 9:30 nicht. Die Ganzzahlzeile weist +5 zurück, die Dezimalzeile akzeptiert .5 und lehnt 5. ab, und die Slug-Zeile lässt nur einzelne Bindestriche und Kleinbuchstaben zu.

Suchen, zählen und kopieren

Der Filter liest die ganze Zeile, nicht nur ihren Titel: „octet“ findet die IPv4-Zeile über den Hinweis, „^https“ findet die URL-Zeile über das Muster selbst, „blank“ die Zeile für leere Zeilen. Der Zähler nennt immer den Bezug zu 15, Escape leert das Feld mit Fokus, und die Schaltfläche Leeren tut dasselbe auf einem Touchscreen.

Die Schaltfläche der Zeile kopiert nur den regulären Ausdruck, Anker inklusive und ohne zusätzliche Anführungszeichen, sodass das Ergebnis direkt in Quellcode, eine Testdatei oder eine Validierungsregel passt. Anwendungsfall und Hinweis bleiben auf der Seite: Sie sind Kontext, nicht Teil des Musters.

Flags und Unterschiede zwischen Engines

Drei Zeilen erfüllen ihre Aufgabe nur mit den passenden Flags: Die Zeile für äußere Leerzeichen braucht das globale Flag, um beide Enden zu entfernen, die Zeile für leere Zeilen den Mehrzeilenmodus, damit ^ und $ pro Zeile gelten, und die Zeile für wiederholte Wörter das Flag für Groß- und Kleinschreibung, damit „The the“ als Wiederholung gilt.

Die größere Grenze ist die Portabilität. Lookbehind, benannte Gruppen, Unicode-Eigenschaften und possessive Quantifizierer sind in JavaScript, PCRE, Python, Java, .NET, Go und Ruby nicht gleich umgesetzt, und ein von dieser Seite übernommenes Muster erbt die Annahmen seiner Herkunfts-Engine. Prüfe die Dokumentation der Zielengine und halte den Ausdruck in einem Test, der auf den Zeichenketten deines Dienstes läuft.

Zuletzt verwendet: