Como o padrão funciona
| Parte | Significado |
|---|---|
[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])? | Um rótulo de 1 a 63 caracteres que não começa nem termina com hífen |
\. | Um ponto após cada rótulo |
(?:…)+ | Um ou mais rótulos (subdomínios) |
[A-Za-z]{2,}$ | O domínio de nível superior (TLD) |
Exemplos de código
JavaScript
const re = /^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}', value))PHP
preg_match('/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/', $value) === 1;
Observações e limitações
Domínios internacionalizados precisam ser convertidos antes para a forma punycode (xn--…). Consulte os registros de um domínio com o DNS Lookup.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.