utildev
← Blog
Ferramentas de Texto8 min

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

Padrões como (a+)+ aplicados a strings longas podem fazer o motor de regex travar em loop exponencial, consumindo 100% da CPU. Evite quantificadores aninhados sem âncoras.

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.

Ferramentas relacionadas

Testador Regex
Teste e valide expressões regulares com exemplos práticos

Artigos relacionados

O que é Base64 e quando usar?5 min →JSON: formatação, validação e boas práticas5 min →