Expressões regulares: guia prático para devs
Aprenda regex do zero: sintaxe, quantificadores, grupos de captura, flags e armadilhas comuns. Com exemplos práticos para validação e extração de dados.
Expressões regulares (regex) são uma linguagem formal para descrever padrões em strings. Apesar de sua sintaxe compacta e às vezes intimidadora, regex é uma das habilidades mais versáteis que um desenvolvedor pode ter — presente em praticamente toda linguagem de programação, editores de texto e ferramentas de linha de comando.
Elementos fundamentais
- . — qualquer caractere exceto nova linha
- \d — dígito (0-9), \w — palavra (a-z, A-Z, 0-9, _), \s — espaço em branco
- ^ — início da string, $ — fim da string
- [abc] — um dos caracteres listados, [^abc] — nenhum dos listados
- (abc) — grupo de captura
- | — ou (alternância)
Quantificadores
- * — zero ou mais ocorrências
- + — uma ou mais ocorrências
- ? — zero ou uma ocorrência (opcional)
- {n} — exatamente n ocorrências
- {n,m} — entre n e m ocorrências
- Adicione ? após o quantificador para torná-lo não-guloso: .*? (lazy)
// Validar e-mail simples
/^[^\s@]+@[^\s@]+\.[^\s@]+$/
// Telefone brasileiro (com DDD)
/^\(?\d{2}\)?[\s-]?\d{4,5}[\s-]?\d{4}$/
// CEP
/^\d{5}-?\d{3}$/
// CPF (apenas formato)
/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/Flags importantes
- g (global): encontra todas as ocorrências, não apenas a primeira
- i (case-insensitive): ignora maiúsculas e minúsculas
- m (multiline): ^ e $ correspondem ao início/fim de cada linha
- s (dotAll): . passa a corresponder a nova linha também
- u (unicode): habilita correspondência de caracteres Unicode completa
Armadilha: catastrophic backtracking
Regras práticas: prefira padrões específicos a genéricos, ancore com ^ e $ sempre que possível, e teste com entradas extremas antes de usar em produção. Não use regex para parsing de HTML, XML, JSON ou SQL — use parsers dedicados para esses formatos.
Use o Testador de Regex do UtilDev para testar seus padrões em tempo real, com destaque visual de todos os matches e grupos de captura.