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.
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
- Digite o padrão (sem barras) em Expressão regular.
- Marque as flags de que precisa: g, i, m, s, u, y, d.
- Cole o texto a pesquisar em Texto de teste – as ocorrências se atualizam automaticamente.
- Marque Substituir ocorrências por… e digite uma substituição (com $1, $<name>, $& …) para ver a prévia do resultado.
Exemplo
Pattern (?<y>\d{4})-(\d{2}) with flags g, text "a 2024-05 b 1999-12", replacement $2/$<y> 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.