Testador de Regex Online - Expressões Regulares
Teste e valide expressões regulares em tempo real com destacamento visual de matches, suporte a flags e biblioteca de padrões comuns para aprender e desenvolver regex eficientes.
Testador de Regex
📚 Padrões Comuns
🏁 Flags Disponíveis
- g (global): Encontra todos os matches, não apenas o primeiro
- i (insensitive): Ignora diferença entre maiúsculas e minúsculas
- m (multiline): ^ e $ funcionam em cada linha
- s (dotAll): . corresponde a quebras de linha
- u (unicode): Trata o padrão como uma sequência Unicode
O que são Expressões Regulares?
Expressões regulares (regex ou regexp) são padrões usados para encontrar combinações de caracteres em strings. Elas são extremamente poderosas para validação, busca, extração e substituição de texto em praticamente todas as linguagens de programação.
Sintaxe Básica
Caracteres Literais
abc- Combina "abc" exatamente123- Combina "123".- Qualquer caractere (exceto \n)
Classes de Caracteres
\d- Qualquer dígito [0-9]\w- Caractere alfanumérico [a-zA-Z0-9_]\s- Espaço em branco
Quantificadores
*- 0 ou mais vezes+- 1 ou mais vezes?- 0 ou 1 vez (opcional){n,m}- Entre n e m vezes
Âncoras
^- Início da string$- Fim da string\b- Limite de palavra
Grupos
(abc)- Grupo de captura(?:abc)- Grupo não-capturaa|b- OR lógico
Escapar Caracteres
\.- Ponto literal\*- Asterisco literal\\- Barra invertida literal
Flags (Modificadores)
- g (global): Encontra todos os matches, não apenas o primeiro
- i (insensitive): Ignora diferença entre maiúsculas e minúsculas
- m (multiline): ^ e $ funcionam em cada linha, não apenas início/fim da string
- s (dotAll): Faz o . corresponder a quebras de linha também
- u (unicode): Trata o padrão como uma sequência Unicode
Exemplos Práticos
📧 Validar Email
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} Match: usuario@exemplo.com.br
📱 Telefone Brasileiro
\(?(\d{2})\)?\s?(\d{4,5})-?(\d{4}) Match: (11) 98765-4321, 11987654321, (11) 3456-7890
🔗 Extrair URLs
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b Match: https://exemplo.com/pagina
🆔 CPF
\d{3}\.\d{3}\.\d{3}-\d{2} Match: 123.456.789-00
🎨 Cor Hexadecimal
#?[0-9A-Fa-f]{6} Match: #FF5733, ff5733
📅 Data DD/MM/YYYY
(\d{2})\/(\d{2})\/(\d{4}) Match: 25/12/2024 (com grupos de captura para dia, mês, ano)
Casos de Uso Comuns
✅ Validação
- • Emails, telefones, CEP
- • Senhas (força/complexidade)
- • Cartões de crédito
- • Datas e horários
🔍 Busca e Extração
- • URLs, emails em texto
- • Números, preços
- • Hashtags, menções
- • Tags HTML/XML
🔄 Substituição
- • Formatação de texto
- • Remoção de caracteres
- • Transformação de dados
- • Sanitização de input
✂️ Split e Parse
- • CSV parsing
- • Log parsing
- • Tokenização
- • Extração de dados
Dicas e Melhores Práticas
- Seja específico: Use
[0-9]em vez de.quando possível - Use âncoras: ^email$ garante match da string completa
- Escape caracteres especiais: Use \ antes de . * + ? [ ] { } ( ) | ^ $
- Grupos não-captura: Use (?:...) quando não precisar do grupo
- Lookahead/Lookbehind: Para matches contextuais sem consumir caracteres
- Teste exaustivamente: Teste casos válidos e inválidos
- Performance: Evite backtracking excessivo com quantificadores aninhados
- Legibilidade: Comente regex complexos ou divida em partes menores
Armadilhas Comuns
⚠️ Cuidado com:
- Greedy vs Lazy:
.*é ganancioso,.*?é preguiçoso - Caracteres especiais: Sempre escape ., *, +, etc. quando precisar do literal
- Performance: Regex complexos podem ser muito lentos (ReDoS)
- Validação completa: Regex não substitui validação semântica (ex: 32/13/2024 passa no padrão mas é inválido)
- Unicode: Use flag u para caracteres Unicode corretos
Regex em Diferentes Linguagens
JavaScript
const regex = /pattern/gi;
const match = text.match(regex);
const replaced = text.replace(regex, 'novo'); Python
import re
pattern = r'pattern'
match = re.search(pattern, text)
replaced = re.sub(pattern, 'novo', text) PHP
$pattern = '/pattern/i';
preg_match($pattern, $text, $matches);
$replaced = preg_replace($pattern, 'novo', $text); Recursos para Aprender
Tutoriais Interativos
- • RegexOne
- • RegexLearn
- • Regex101 (com explicações)
- • RegExr
Documentação
- • MDN Web Docs
- • Regular-Expressions.info
- • Regex Cheat Sheet
- • Documentação da linguagem
Perguntas Frequentes
Regex é lento?
Depende. Regex bem escritos são muito rápidos. Regex mal escritos com backtracking excessivo podem ser extremamente lentos (vulnerabilidade ReDoS). Sempre teste performance com dados reais.
Quando NÃO usar regex?
Para parsing de HTML/XML (use parsers apropriados), validações complexas que requerem lógica de negócio, ou quando uma solução string simples é mais clara e eficiente.
Como depurar regex complexos?
Use ferramentas online como Regex101 que explicam cada parte do padrão. Divida regex complexos em partes menores. Teste incrementalmente adicionando uma parte por vez.