Testador Regex Online
Teste expressões regulares em tempo real com destaque de correspondências.
2 matches found
Por que usar
Depure seu regex instantaneamente
Tempo real
As correspondências são destacadas conforme você digita. Sem recarregamento, sem botões de envio.
Grupos de captura
Veja cada grupo capturado separadamente com seu índice e valor.
Todas as flags
Suporte completo às flags g, i, m, s do motor ECMAScript/JavaScript.
Sem envio de dados
Seu texto de teste nunca sai do seu navegador. Ideal para dados sensíveis.
Como funciona
Três passos, sem complicação
Digite seu padrão regex
Escreva sua expressão regular no campo de padrão. Escolha as flags: g, i, m, s.
Cole seu texto de teste
Insira o texto que você deseja testar com o padrão. As correspondências são destacadas instantaneamente.
Inspecione os resultados
Revise correspondências completas e grupos de captura. Ajuste o padrão até obter o resultado desejado.
Perguntas frequentes
Ficou com dúvidas?
Uma expressão regular (regex ou regexp) é uma sequência de caracteres que define um padrão de busca em texto. É uma linguagem formal derivada da teoria de autômatos e da teoria das linguagens formais. Com regex você pode buscar, validar, extrair e substituir texto com padrões complexos em uma única linha de código. São usadas em todas as linguagens de programação, editores de texto, bancos de dados e ferramentas de linha de comando.
Os padrões mais usados incluem: e-mail, URL com http ou https, telefone com código de país opcional, CEP ou ZIP code, data no formato ISO, endereço IPv4 e somente alfanumérico. Esses padrões são pontos de partida e em produção devem sempre ser adaptados ao formato exato esperado.
As flags modificam o comportamento do padrão: g (global) encontra todas as correspondências em vez de parar na primeira; i (insensitive) ignora maiúsculas e minúsculas; m (multiline) faz os marcadores de início e fim corresponderem ao início e fim de cada linha, não apenas do texto inteiro; s (dotAll) faz o ponto corresponder a quebras de linha também, o que ele exclui por padrão. As flags podem ser combinadas, como /padrão/gim.
Grupos de captura, definidos com parênteses, permitem extrair partes específicas de uma correspondência. Por exemplo, um padrão com três grupos de parênteses em uma data captura três grupos: ano, mês e dia. Grupos nomeados com a sintaxe de ponto de interrogação mais nome permitem acesso pelo nome em vez de índice numérico. Grupos não capturantes com ponto de interrogação e dois pontos agrupam sem capturar, úteis para aplicar quantificadores sem criar um grupo.
Lookahead e lookbehind são asserções de posição que verificam o que vem antes ou depois de uma posição sem consumir caracteres. Lookahead positivo: corresponde se seguido pelo padrão. Lookahead negativo: corresponde se NÃO seguido pelo padrão. Lookbehind positivo: corresponde se precedido pelo padrão. Lookbehind negativo: corresponde se NÃO precedido pelo padrão. Por exemplo, digitos seguidos de lookahead com a palavra dollars extrai números seguidos de dollars sem incluir a palavra.
A história das expressões regulares: de Kleene em 1951 ao PCRE
As expressões regulares foram formuladas matematicamente por Stephen Kleene em 1951 em seu artigo sobre representação de eventos em redes neurais e autômatos finitos, que introduziu a notação algébrica para linguagens regulares. O operador estrela de Kleene leva seu nome. A primeira implementação prática em software foi feita por Ken Thompson no editor de texto qed em 1968 para o CTSS (Compatible Time-Sharing System). Thompson implementou regex com uma construção eficiente de NFA (autômato finito não determinístico) que garantia complexidade O(n) no tamanho do texto.
O PCRE (Perl Compatible Regular Expressions) foi criado por Philip Hazel em 1997 como uma biblioteca C que reimplementa a sintaxe de regex do Perl 5. O PCRE adicionou recursos ausentes nos motores clássicos: lookahead/lookbehind, grupos nomeados, retrorreferências e recursão. O PCRE se tornou o motor de regex padrão para PHP, Apache, nginx, R e centenas de outras aplicações. O ECMAScript (JavaScript) implementa seu próprio motor com semântica similar, mas distinta, sendo notável o suporte a lookbehind adicionado apenas no ES2018.
No desenvolvimento web moderno, as regex são essenciais para validação de formulários no navegador, extração de dados em scraping, transformações em ferramentas de build como webpack e vite, regras de roteamento em frameworks como Express e Next.js, e busca avançada em editores como o VS Code. A diferença entre os sabores PCRE e ECMAScript afeta principalmente: lookbehind de comprimento variável (PCRE suporta, ECMAScript tem restrições), referências condicionais e recursão (somente PCRE) e algumas sequências de escape.