ToolHub
View All Posts

Reguläre Ausdrücke, die jeder Entwickler beherrschen sollte

Reguläre Ausdrücke (Regex) gehören zu den leistungsfähigsten Werkzeugen im Werkzeugkasten eines Entwicklers. Sie ermöglichen es, Text mit prägnanten Mustern zu durchsuchen, zu validieren und zu transformieren – Operationen, die mit prozeduralem Code Dutzende von Zeilen erfordern könnten. Obwohl die Regex-Syntax auf den ersten Blick kryptisch erscheinen mag, deckt die Beherrschung einer Kernmenge von Mustern die überwiegende Mehrheit der praktischen Anwendungsfälle ab. Dieser Leitfaden stellt die regulären Ausdrücke vor, die Sie immer wieder verwenden werden, und erklärt detailliert, wie jedes Muster funktioniert.

Grundlagen der regulären Ausdrücke – Eine Wiederholung

Bevor wir in die spezifischen Muster eintauchen, hier eine kurze Wiederholung der grundlegenden Metazeichen, die die Basis aller regulären Ausdrücke bilden:

MetazeichenBedeutungBeispiel
.Beliebiges einzelnes Zeichena.c entspricht abc, a1c, a c
*Vorheriges Zeichen null- oder mehrmalsab*c entspricht ac, abc, abbc
+Vorheriges Zeichen ein- oder mehrmalsab+c entspricht abc, abbc
?Vorheriges Zeichen null- oder einmalcolou?r entspricht color, colour
^Anfang der Zeichenkette^Hello entspricht Hello am Anfang
$Ende der Zeichenketteworld$ entspricht world am Ende
[]Zeichenklasse[aeiou] entspricht einem beliebigen Vokal
()Erfassungsgruppe(ab)+ entspricht ab, abab
|Alternation (oder)cat|dog entspricht cat oder dog
\dZiffer [0-9]\d{3} entspricht 123
\wWortzeichen [a-zA-Z0-9_]\w+ entspricht hello_123
\sLeerzeichena\sb entspricht a b

1. E-Mail-Validierung

Grundlegendes E-Mail-Muster

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Dieses Muster validiert die grundlegende Struktur einer E-Mail-Adresse: ein oder mehrere erlaubte Zeichen vor dem @, gefolgt von einem Domainnamen mit mindestens einem Punkt und einer Top-Level-Domain aus zwei oder mehr Buchstaben. Es erkennt die meisten ungültigen Formate und lässt gleichzeitig legitime Adressen zu.

Treffer: user@example.com, john.doe+tag@company.co.uk

Keine Treffer: user@, @example.com, user@.com

Wichtiger Hinweis: Kein regulärer Ausdruck kann alle gültigen E-Mail-Adressen gemäß RFC 5322 perfekt validieren. Verwenden Sie dieses Muster für eine grundlegende Formatprüfung und validieren Sie die Adresse dann durch Senden einer Bestätigungs-E-Mail. Für Produktionsanwendungen kombinieren Sie die Regex-Validierung mit einer Domain-Validierung.

2. URL-Validierung

HTTP/HTTPS-URL-Muster

^https?:\/\/(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(\/[^\s]*)?$

Dieses Muster erkennt HTTP- und HTTPS-URLs mit optionalem www-Präfix, einschließlich Domainname und optionalem Pfad. Das s? macht das "s" in https optional, (www\.)? macht das www-Präfix optional. Das Pfadsegment (\/[^\s]*)? erlaubt beliebige Zeichen außer Leerzeichen nach dem Domainnamen.

Treffer: https://example.com, http://www.example.com/path/to/page

Keine Treffer: ftp://example.com, example.com (kein Protokoll)

3. Telefonnummern-Validierung

Internationale Telefonnummern

^\+?[1-9]\d{1,14}$

Dieses Muster folgt dem internationalen Telefonnummernformat E.164. Es erlaubt ein optionales +-Präfix, erfordert eine erste Ziffer von 1-9 (keine führende Null) und insgesamt maximal 15 Ziffern. Dies ist das zuverlässigste Format für die internationale Speicherung und Validierung von Telefonnummern.

Treffer: +14155552671, 442071838750

Keine Treffer: +01xxxxxxxxx, 123

4. Passwortstärke

Muster für starke Passwörter

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

Dieses Muster erzwingt eine starke Passwortrichtlinie: mindestens 8 Zeichen mit mindestens einem Kleinbuchstaben, einem Großbuchstaben, einer Ziffer und einem Sonderzeichen. Die (?=.*[...])-Syntax verwendet positive Lookaheads, um das Vorhandensein jedes Zeichentyps zu prüfen, ohne Zeichen zu verbrauchen.

Treffer: MyP@ss1word, Str0ng!Pass

Keine Treffer: password, Password1, P@ss

5. IP-Adressen-Validierung

IPv4-Adressen

^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$

Dieses Muster validiert IPv4-Adressen mit korrekter Bereichsprüfung. Jedes Oktett muss zwischen 0 und 255 liegen. Das Muster verwendet Alternation: 250-255 (25[0-5]), 200-249 (2[0-4]\d) oder 0-199 ([01]?\d\d?). Dies wird dreimal nach einem Punkt wiederholt und dann ein letztes Mal für das letzte Oktett.

Treffer: 192.168.1.1, 10.0.0.1, 255.255.255.0

Keine Treffer: 256.1.1.1, 192.168.1, 192.168.1.1.1

6. Datumsformat-Validierung

YYYY-MM-DD (ISO 8601)

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$

Dieses Muster validiert Daten im ISO-8601-Format (YYYY-MM-DD). Es prüft auf eine vierstellige Jahreszahl, einen Monat zwischen 01-12 und einen Tag zwischen 01-31. Beachten Sie, dass dieses Muster das Format, aber nicht die logische Gültigkeit des Datums validiert (z. B. erlaubt es 2026-02-31). Für eine vollständige Validierung parsen Sie das Datum und prüfen Sie es programmatisch.

Treffer: 2026-05-20, 2025-01-01, 2024-12-31

Keine Treffer: 2026-5-20, 2026-13-01, 26-05-20

7. Hexadezimale Farbcodes

CSS-Hexadezimalfarben

^#(?:[0-9a-fA-F]{3}){1,2}$

Dieses Muster erkennt hexadezimale CSS-Farbcodes, sowohl die 3-stellige Kurzform (#fff) als auch die 6-stellige Vollform (#ffffff). Der {1,2}-Quantor erlaubt 1 oder 2 Wiederholungen der 3-stelligen Hex-Zifferngruppe und unterstützt damit beide Formate.

Treffer: #fff, #FF5733, #1e293b

Keine Treffer: fff, #ff, #1234567

8. Slug / URL-sichere Zeichenketten

URL-Slug-Muster

^[a-z0-9]+(?:-[a-z0-9]+)*$

Dieses Muster validiert URL-Slugs: kleingeschriebene alphanumerische Zeichenketten mit Bindestrichen als Trennzeichen. Es stellt sicher, dass keine führenden oder nachgestellten Bindestriche und keine aufeinanderfolgenden Bindestriche vorhanden sind. Dieses Format ist SEO-freundlich und sicher für URLs, Dateinamen und Bezeichner.

Treffer: my-blog-post, regex-patterns-guide, tool123

Keine Treffer: My-Post, -slug, slug-, my--post

9. Kreditkartennummern

Allgemeines Kreditkarten-Muster

^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13}|6(?:011|5\d{2})\d{12})$

Dieses Muster validiert die wichtigsten Kreditkartennummern: Visa (beginnt mit 4, 13 oder 16 Ziffern), Mastercard (beginnt mit 51-55, 16 Ziffern), American Express (beginnt mit 34 oder 37, 15 Ziffern) und Discover (beginnt mit 6011 oder 65, 16 Ziffern). Kombinieren Sie dies mit dem Luhn-Algorithmus für eine vollständige Validierung.

10. HTML-Tag-Erkennung

HTML-Tag-Extraktion

<([a-z][a-z0-9]*)\b[^>]*>(.*?)<\/\1>

Dieses Muster erkennt öffnende und schließende HTML-Tags mit Inhalt. Die erste Erfassungsgruppe ([a-z][a-z0-9]*) erfasst den Tag-Namen, und die Rückreferenz \1 stellt sicher, dass das schließende Tag mit dem öffnenden übereinstimmt. (.*?) verwendet einen lazy Match, um den Inhalt zwischen den Tags mit der kürzesten Übereinstimmung zu erfassen.

Tipps für bessere reguläre Ausdrücke

Möchten Sie diese Regex-Muster interaktiv testen? Probieren Sie unser kostenloses Regex-Testtool mit Echtzeit-Erkennung, Visualisierung von Erfassungsgruppen und Mustererklärung.

Regex testen

Häufig gestellte Fragen

Was sind reguläre Ausdrücke?

Ein regulärer Ausdruck ist eine Zeichenfolge, die ein Suchmuster definiert. Er wird für Zeichenkettenabgleich, Validierung, Suchen-und-Ersetzen-Operationen und Textanalyse verwendet. Regex-Muster verwenden spezielle Metazeichen wie ., *, +, ?, [], () und {}, um flexible Abgleichregeln zu definieren.

Sollte ich E-Mails mit regulären Ausdrücken validieren?

Verwenden Sie reguläre Ausdrücke für die grundlegende E-Mail-Formatvalidierung (Prüfung des @-Zeichens, der Domainstruktur), aber versuchen Sie nicht, E-Mail-Adressen ausschließlich mit Regex vollständig zu validieren. Die E-Mail-Spezifikation (RFC 5322) ist äußerst komplex, und kein regulärer Ausdruck kann alle gültigen Adressen perfekt validieren. In Produktionsumgebungen sollten Sie die grundlegende Regex-Validierung mit einer tatsächlichen E-Mail-Validierung (Senden eines Bestätigungslinks) kombinieren.

Was ist der Unterschied zwischen gierigen und lazy Quantoren?

Gierige Quantoren (*, +) gleichen so viel Text wie möglich ab, während lazy Quantoren (*?, +?) so wenig Text wie möglich abgleichen. Zum Beispiel, angewandt auf 'aabb', gleicht das gierige Muster a.*b 'aabb' (die gesamte Zeichenkette) ab, während das lazy Muster a.*?b nur 'aab' (die kürzeste Übereinstimmung) abgleicht.

Wie teste ich reguläre Ausdrücke?

Testen Sie Muster interaktiv mit Online-Regex-Testtools (wie dem ToolHub Regex-Tester). Diese Tools heben Treffer in Echtzeit hervor, zeigen Erfassungsgruppen an und erklären die Funktion der einzelnen Musterteile.

Sind reguläre Ausdrücke in verschiedenen Programmiersprachen gleich?

Der größte Teil der Regex-Syntax ist sprachübergreifend gleich, aber bei erweiterten Funktionen gibt es Unterschiede. JavaScript unterstützt keine Lookbehind-Assertions in älteren Engines, Python verwendet eine andere Syntax für benannte Gruppen als JavaScript, und PCRE (PHP) unterstützt mehr Funktionen als die meisten anderen Engines. Testen Sie Muster immer in der Zielsprache.