Как работает шаблон
| Часть | Значение |
|---|---|
25[0-5] | 250–255 |
2[0-4]\d | 200–249 |
1\d\d | 100–199 |
[1-9]?\d | 0–99, без ведущего нуля |
(?:…\.){3} | Три числа, каждое с последующей точкой |
(?:…)$ | Четвёртое число и конец строки |
Примеры кода
JavaScript
const re = /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)', value))PHP
preg_match('/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/', $value) === 1;
Примечания и ограничения
Каждый октет проверяется на диапазон 0–255, что простым шаблоном \d{1,3} сделать нельзя. Ведущие нули отклоняются, так как некоторые системы читают их как восьмеричные. Чтобы принимать запись в формате CIDR, добавьте (?:\/(?:3[0-2]|[12]?\d))? перед $.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.