Testador de regex

Digite uma expressão regular e um texto: as correspondências são destacadas na hora, com grupos de captura, grupos nomeados e prévia da substituição. Padrões prontos para celular, CPF, CEP, e-mail e mais.

Correspondências —

Lista de correspondências · grupos

#PosiçãoCorrespondênciaGrupos

Nenhuma correspondência.


  

Sobre a ferramenta: Testador de regex

Uma expressão regular (regex) é uma pequena linguagem de padrões para encontrar ou substituir trechos de texto que seguem uma regra: validação de formulários, análise de logs, localizar e substituir em massa. Este testador usa o motor de regex do JavaScript do seu navegador, então o resultado é exatamente o mesmo que no seu código JavaScript ou TypeScript.

A busca roda em uma thread separada (Web Worker). Se um padrão mal escrito demorar demais, ele é interrompido automaticamente após 1,5 segundo e a página não trava.

Como usar

  1. Escolha um exemplo em Padrões comuns ou digite sua própria expressão. Não é preciso colocar as barras (/) em volta.
  2. Ative ou desative as flags de que precisar (g, i, m, s, u, y).
  3. Digite o texto de teste: as correspondências ficam destacadas e a lista abaixo mostra a posição e o valor de cada grupo.
  4. Use $1, $<nome> ou $& em Substituição para ver como o texto ficaria.

Guia rápido de regex

SintaxeSignificadoExemplo
\d \w \sdígito / letra, dígito ou _ / espaço\d{5}
.qualquer caractere, exceto quebra de linha (incluída com a flag s)a.c
* + ? {n,m}0 ou mais / 1 ou mais / 0 ou 1 / de n a m vezes\d{3,4}
^ $início / fim (de cada linha com a flag m)^\d+$
[áãçé]classe de caracteres – \w não inclui acentos nem ç![A-Za-zÀ-ú]+
( ) (?: )grupo de captura / grupo sem captura(\d{5})-(\d{3})
(?<nome> )grupo nomeado(?<year>\d{4})
(?= ) (?! )lookahead / lookahead negativo\d+(?=\s?reais)

O que cada flag faz

  • g (global): encontra todas as correspondências, não só a primeira.
  • i (ignoreCase): não diferencia maiúsculas de minúsculas.
  • m (multiline): ^ e $ correspondem ao início e ao fim de cada linha.
  • s (dotAll): o ponto (.) também corresponde a quebras de linha.
  • u (unicode): trata um emoji como um único caractere e permite \p{…}, como \p{L} para todas as letras, inclusive acentuadas.
  • y (sticky): só tenta corresponder na posição atual (lastIndex).

Cuidado com o backtracking catastrófico (ReDoS)

Padrões com repetições aninhadas como ^(a+)+$ podem levar um tempo exponencial em textos que não correspondem e travar um servidor — é o chamado ataque ReDoS. Se aqui der tempo esgotado, remova o aninhamento, por exemplo trocando (a+)+ por a+.

Perguntas frequentes

O padrão de CPF verifica se o número é válido?

Não. A expressão regular verifica apenas o formato (000.000.000-00). Os dígitos verificadores precisam ser calculados por um algoritmo, o que uma regex não faz. Por privacidade, não digite CPFs reais — de qualquer forma, nada é enviado a um servidor.

Os resultados são iguais aos de Python, Java ou PCRE?

A sintaxe básica é quase a mesma, mas há diferenças nos detalhes. Python escreve grupos nomeados como (?P…) e, em strings Java, é preciso duplicar a barra invertida (\\d). Este testador segue o JavaScript (ECMAScript).

Por que \w não encontra letras acentuadas?

No JavaScript, \w cobre só A–Z, a–z, 0–9 e _. Para palavras em português use [A-Za-zÀ-ú] ou, com a flag u, a classe \p{L}.

O que acontece quando há muitas correspondências?

São buscadas e destacadas até 5.000 correspondências; a tabela mostra as 300 primeiras.