Testador de regex

Teste regex JavaScript ao vivo com todas as flags (g i m s u y d): ocorrências destacadas, grupos de captura e nomeados, índices e prévia de substituição. Sem travamentos.

//g

Usa o motor de regex JavaScript (ECMAScript) do seu navegador em um worker em segundo plano. Sintaxes de PCRE/Python, como quantificadores possessivos ou modificadores (?i) embutidos, podem não ser suportadas.

O que é Testador de regex?

Testa uma expressão regular JavaScript no seu texto enquanto você digita. As ocorrências são destacadas, uma tabela mostra cada ocorrência com a posição, os grupos de captura numerados e nomeados (e os índices dos grupos com a flag d), e uma prévia opcional de substituição mostra o resultado de String.replace. Os padrões rodam em um worker em segundo plano que é interrompido depois de 1,5 segundo, então padrões catastróficos não conseguem travar a página.

Como usar Testador de regex

  1. Digite o padrão (sem barras) em Expressão regular.
  2. Marque as flags de que precisa: g, i, m, s, u, y, d.
  3. Cole o texto a pesquisar em Texto de teste – as ocorrências se atualizam automaticamente.
  4. Marque Substituir ocorrências por… e digite uma substituição (com $1, $<name>, $& …) para ver a prévia do resultado.

Exemplo

Entrada
Pattern (?<y>\d{4})-(\d{2}) with flags g, text "a 2024-05 b 1999-12", replacement $2/$<y>
Saída
2 match(es) · replaced: a 05/2024 b 12/1999

Quando usar Testador de regex

Use para criar e depurar regex para JavaScript, TypeScript e Node.js, e para regras de validação ou localizar e substituir. Outros motores (PCRE, Python, Java, .NET, POSIX) diferem em sintaxe e recursos – por exemplo, quantificadores possessivos, modificadores inline como (?i) e as âncoras \A/\Z não estão disponíveis –, então teste também neles quando forem o seu alvo.

Como funciona Testador de regex

O padrão é compilado com new RegExp(pattern, flags) dentro de um Web Worker. Com g ou y, a ferramenta percorre exec() em laço e reúne até 1.000 ocorrências (ocorrências vazias avançam um ponto de código para evitar laços infinitos); sem elas, só a primeira ocorrência é informada, exatamente como no JavaScript. Cada ocorrência registra o índice inicial e final, os grupos de captura, os grupos nomeados e, com a flag d, os indices de cada grupo. A prévia de substituição executa text.replace(regex, replacement). Se o worker não responder em 1.500 ms, ele é encerrado e aparece uma mensagem de tempo esgotado.

Casos de Uso Comuns

  • Depurar um padrão de validação para campos de formulário
  • Extrair dados com grupos de captura nomeados
  • Ver a prévia de um localizar e substituir antes de rodá-lo em arquivos
  • Aprender como flags como m, s e u mudam as correspondências
  • Verificar se um padrão tem backtracking catastrófico

Perguntas Frequentes

Por que minha regex só encontra a primeira ocorrência?

Sem a flag g (global), o JavaScript para depois da primeira ocorrência. Marque g para listar todas.

O que faz a flag d?

Ela acrescenta indices a cada ocorrência, com a posição inicial e final de cada grupo de captura. A ferramenta os mostra ao lado de cada grupo.

O que acontece com um padrão catastrófico como (a+)+$?

O worker que o executa é encerrado depois de 1,5 segundo e você vê uma mensagem de tempo esgotado em vez de uma aba travada.

É compatível com regex do PCRE ou do Python?

Em boa parte, na sintaxe básica, mas não totalmente. Ele usa o motor ECMAScript do seu navegador.

Explore mais categorias