Online Regex Tester - Regular Expressions
Teste e valide expressões regulares in real-time com destacamento visual de matches, suporte a flags e biblioteca de padrões comuns para aprender e desenvolver regex eficientes.
Regex Tester
📚 Common Patterns
🏁 Available Flags
- g (global): Finds all matches, not just the first
- i (insensitive): Ignores difference between uppercase and lowercase
- m (multiline): ^ and $ work on each line
- s (dotAll): . matches line breaks
- u (unicode): Treats the pattern as a Unicode sequence
O que são Expressões Regulares?
Expressões regulares (regex ou regexp) são padrões usados para encontrar combinações de characters 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
Characters Literais
abc- Combina "abc" exatamente123- Combina "123".- Qualquer caractere (exceto \n)
Classes de Characters
\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 Characters
\.- 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)
Use Cases 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 characters
- • 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 characters especiais: Use \ antes de . * + ? [ ] { } ( ) | ^ $
- Grupos não-captura: Use (?:...) quando não precisar do grupo
- Lookahead/Lookbehind: Para matches contextuais sem consumir characters
- Teste exaustivamente: Teste casos válidos e inválidos
- Performance: Evite backtracking excessivo com quantificadores aninhados
- Readability: Comente regex complexos ou divida em partes menores
Armadilhas Comuns
⚠️ Cuidado com:
- Greedy vs Lazy:
.*é ganancioso,.*?é preguiçoso - Characters 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 characters 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.