Como o padrão funciona
| Parte | Significado |
|---|---|
25[0-5] | 250–255 |
2[0-4]\d | 200–249 |
1\d\d | 100–199 |
[1-9]?\d | 0–99, sem zero à esquerda |
(?:…\.){3} | Três números, cada um seguido de um ponto |
(?:…)$ | O quarto número, seguido do fim da string |
Exemplos de código
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;
Observações e limitações
Cada octeto é verificado para ficar entre 0 e 255, o que um padrão simples \d{1,3} não consegue fazer. Zeros à esquerda são rejeitados porque alguns sistemas os interpretam como octal. Para aceitar a notação CIDR, acrescente (?:\/(?:3[0-2]|[12]?\d))? antes do $.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.