Regex Muster zum Abgleichen und Validieren von IPv4 (192.168.1.1) und IPv6 Adressen. Inklusive CIDR Notation und Erkennung privater Netzwerke.
10.0.0.255Index 12172.16.0.1Index 23255.255.255.0Index 348.8.8.8Index 480.0.0.0Index 88127.0.0.1Index 96Das obige Muster stimmt nur korrekt mit gültigen IPv4 Adressen überein. Von den Teststrings stimmt es mit 192.168.1.1, 10.0.0.255, 172.16.0.1, 255.255.255.0, 8.8.8.8, 0.0.0.0 und 127.0.0.1 überein. Es lehnt 999.999.999.999, 256.1.1.1 und 1.2.3 (nur drei Oktette) ab.
Jedes Oktett verwendet eine Drei-Wege-Alternation, um den Bereich von 0 bis 255 anzuwenden:
| Alternationszweig | Abgedeckter Bereich | Beispiele Übereinstimmung |
|---|---|---|
25[0-5] |
250 bis 255 | 250, 255 |
2[0-4]\d |
200 bis 249 | 200, 214, 249 |
[01]?\d\d? |
0 bis 199 | 0, 99, 192 |
Die Alternation ist in eine nicht erfassende Gruppe (?:...) eingeschlossen und wird dreimal mit \. dazwischen unter Verwendung von {3} wiederholt, dann wiederholt das letzte Oktett dieselbe Alternation. Wortgrenzen \b an beiden Enden verhindern, dass das Muster mit einer IP Adresse übereinstimmt, die als Teilstring von etwas Größerem erscheint.
\d+\.\d+\.\d+\.\d+ ist das Erste, was die meisten versuchen. Es versagt in zwei Richtungen:
Es stimmt mit Strings überein, die keine gültigen IP Adressen sind. 999.999.999.999 stimmt überein, weil \d+ keine Grenze für den numerischen Wert setzt.
Es kann falsch positive Ergebnisse innerhalb längerer Strings erzeugen. Ohne Wortgrenzen stimmt das Muster mit partiellen Fragmenten in Versionsstrings, Timestamps und Dezimalzahlen überein.
Das korrekte alternationsbasierte Muster behandelt beide Probleme.
Um auch CIDR Blöcke wie 192.168.1.0/24 abzugleichen, füge (\/([0-9]|[1-2]\d|3[0-2]))? am Ende des Basismusters hinzu (vor dem abschließenden \b). Dies macht die Präfixlänge optional und validiert, dass sie zwischen 0 und 32 liegt.
Ein Muster für die vollständige Standard-8-Gruppen-Notation:
([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}
Dies stimmt mit 2001:0db8:85a3:0000:0000:8a2e:0370:7334 überein, verarbeitet aber keine :: Kompression, was die abgekürzte Form ist, die in den meisten Kontexten verwendet wird.
Teste diese Muster mit Live-Ergebnissen im Regex Tester.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.