Pular para o conteúdo principal

Expressões Regulares (Regex)

O que são Expressões Regulares?

As Expressões Regulares (ou Regex) são sequências de caracteres que formam um padrão de busca. Elas são uma ferramenta poderosa para encontrar, validar, extrair e manipular texto de forma precisa e eficiente.

Conceitos Básicos

Metacaracteres Fundamentais

  • . - Corresponde a qualquer caractere (exceto quebra de linha)
  • * - Zero ou mais ocorrências do caractere anterior
  • + - Uma ou mais ocorrências do caractere anterior
  • ? - Zero ou uma ocorrência do caractere anterior
  • ^ - Início da linha
  • $ - Fim da linha
  • [] - Conjunto de caracteres
  • () - Grupo de captura
  • | - Operador OU

Classes de Caracteres

  • \d - Qualquer dígito (0-9)
  • \w - Qualquer caractere de palavra (a-z, A-Z, 0-9, _)
  • \s - Qualquer espaço em branco
  • \D - Qualquer não-dígito
  • \W - Qualquer não-caractere de palavra
  • \S - Qualquer não-espaço em branco

Exemplos Práticos

📧 Validação de E-mail

Padrão básico para validar endereços de e-mail:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Explicação:

  • ^ - Início da string
  • [a-zA-Z0-9._%+-]+ - Um ou mais caracteres válidos antes do @
  • @ - O símbolo @ literal
  • [a-zA-Z0-9.-]+ - Um ou mais caracteres válidos para o domínio
  • \. - O ponto literal
  • [a-zA-Z]{2,} - Pelo menos 2 letras para a extensão
  • $ - Fim da string

🔗 Testar no Regex101

📞 Telefone Brasileiro

Padrão para telefones brasileiros com DDD:

^\(?([1-9]{2})\)?\s?9?[0-9]{4}-?[0-9]{4}$

Explicação:

  • ^\(? - Início, parêntese opcional
  • ([1-9]{2}) - DDD com 2 dígitos de 1-9
  • \)?\s? - Parêntese de fechamento e espaço opcionais
  • 9? - Nono dígito opcional (celular)
  • [0-9]{4}-?[0-9]{4}$ - 4 dígitos, hífen opcional, 4 dígitos

🔗 Testar no Regex101

💳 CPF

Padrão para validar formato de CPF:

^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$

Explicação:

  • ^\d{3} - Início com 3 dígitos
  • \.? - Ponto opcional
  • \d{3} - 3 dígitos
  • \.? - Ponto opcional
  • \d{3} - 3 dígitos
  • -? - Hífen opcional
  • \d{2}$ - 2 dígitos e fim

🔗 Testar no Regex101

🌐 URL/Link

Padrão para validar URLs:

^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$

Explicação:

  • ^https? - Protocolo HTTP ou HTTPS
  • :\/\/ - ://
  • (www\.)? - www. opcional
  • [-a-zA-Z0-9@:%._\+~#=]{1,256} - Domínio
  • \. - Ponto literal
  • [a-zA-Z0-9()]{1,6} - Extensão do domínio
  • Resto: parâmetros e caminhos opcionais

🔗 Testar no Regex101

📅 Data (DD/MM/AAAA)

Padrão para datas no formato brasileiro:

^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/([0-9]{4})$

Explicação:

  • ^(0[1-9]|[12][0-9]|3[01]) - Dia de 01 a 31
  • \/ - Barra literal
  • (0[1-9]|1[0-2]) - Mês de 01 a 12
  • \/ - Barra literal
  • ([0-9]{4})$ - Ano com 4 dígitos

🔗 Testar no Regex101

🕐 Horário (HH:MM)

Padrão para horários em formato 24h:

^([01]?[0-9]|2[0-3]):[0-5][0-9]$

Explicação:

  • ^([01]?[0-9]|2[0-3]) - Horas de 00 a 23
  • : - Dois pontos literal
  • [0-5][0-9]$ - Minutos de 00 a 59

🔗 Testar no Regex101

Exemplos Avançados

🏷️ Extrair Tags HTML

Padrão para extrair conteúdo de tags HTML:

<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)

Funcionalidade: Captura tags HTML completas com seus conteúdos

🔗 Testar no Regex101

🌐 Endereço IP

Padrão para validar endereços IPv4:

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

Funcionalidade: Valida IPs de 0.0.0.0 a 255.255.255.255

🔗 Testar no Regex101

🔑 Senha Forte

Padrão para validar senhas seguras:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&.])[A-Za-z\d@$!%*?&.]{8,}$

Requisitos: Mínimo 8 caracteres, maiúscula, minúscula, número e símbolo

🔗 Testar no Regex101

Dicas Importantes

✅ Boas Práticas

  • Teste sempre suas regex com diferentes casos
  • Use grupos para capturar partes específicas
  • Seja específico - evite padrões muito genéricos
  • Documente regex complexas com comentários

⚠️ Cuidados

  • Performance - regex complexas podem ser lentas
  • Escape caracteres especiais quando necessário
  • Validação completa - regex não substitui validação de negócio
  • Legibilidade - prefira clareza à brevidade extrema

Ferramentas Úteis

🛠️ Regex101

Melhor ferramenta online para testar e debugar expressões regulares

🔗 Acessar Regex101

📚 RegexLearn

Tutorial interativo para aprender regex passo a passo

🔗 Acessar RegexLearn

📖 RegexLib

Biblioteca de expressões regulares prontas para uso

🔗 Acessar RegexLib


🎯 Próximos Passos

  1. Pratique com os exemplos no Regex101
  2. Experimente modificar os padrões
  3. Crie suas próprias regex para casos específicos
  4. Compartilhe suas descobertas com a comunidade

Esta página faz parte do projeto CODAQUI - uma iniciativa para democratizar o conhecimento em tecnologia.