Testador de regex e depurador online grátis
Crie e depure expressões regulares com destaque de sintaxe instantâneo e detalhamento dos grupos de captura direto no seu navegador.
Como testar uma regex
Digite seu padrão.
Insira a regex entre as duas barras, sem as barras. Escolha as flags com os botões g, i, m e s, ou carregue um dos três exemplos.
Cole seu texto de teste.
Coloque o texto de exemplo na caixa abaixo do padrão. As correspondências são destacadas enquanto você digita, e a contagem mostra quantas o padrão encontrou.
Confira os grupos e copie.
Leia os grupos de captura listados para cada correspondência. Quando o padrão funcionar, copie-o como /pattern/flags e cole no seu código JavaScript.
Perguntas frequentes
Respostas sobre o mecanismo de regex do JavaScript, flags e grupos.
Como testo uma regex online?
Digite o padrão na caixa de cima, sem as barras, e cole o texto de exemplo abaixo dela. As correspondências são destacadas enquanto você digita e a contagem se atualiza. Ative g para ver todas as correspondências, e não só a primeira.
Qual variante de regex este testador usa?
Ele usa o mecanismo RegExp nativo do JavaScript, a variante ECMAScript que o seu navegador executa. Padrões que correspondem aqui correspondem da mesma forma em código JavaScript e TypeScript. A sintaxe de PCRE, Python e Java pode ser diferente, então teste esses padrões no mecanismo próprio de cada um.
Por que minha regex funciona em Python ou PHP, mas não aqui?
O JavaScript não tem parte da sintaxe de PCRE e Python. Quantificadores possessivos como a++, grupos atômicos, a flag inline (?i) e os grupos nomeados (?P...) do Python falham com Nothing to repeat ou Invalid group. Um \K é lido como um simples K. Reescreva essas partes na sintaxe do JavaScript.
O que fazem as flags g, i, m e s?
A flag g encontra todas as correspondências em vez de parar na primeira. A flag i ignora maiúsculas e minúsculas. Com m, as âncoras ^ e $ correspondem a cada linha. Com s, o ponto também corresponde a quebras de linha. Só a g começa ativada.
Ele aceita as flags u, y ou d?
Não. Só g, i, m e s podem ser ativadas. Sem a u, as sequências de escape de propriedades Unicode não funcionam e um emoji conta como dois caracteres, então um ponto corresponde à metade dele. Por enquanto, teste padrões com muito Unicode no seu próprio código.
Como uso grupos de captura nomeados?
Coloque um ponto de interrogação e um nome entre sinais de menor e maior logo depois do parêntese de abertura, como no exemplo word já incluído. Cada correspondência passa a listar o grupo pelo nome, como word: longer. Se um padrão misturar grupos nomeados e sem nome, só os nomeados são listados.
Por que meu padrão mostra correspondências vazias?
Padrões que podem corresponder a nada, como a* ou \d*, também correspondem a uma string vazia em cada posição que não se encaixa. No texto bbb, a* gera 4 correspondências vazias. Use + em vez de * quando você precisar de pelo menos um caractere.
Por que o ^ só corresponde à primeira linha?
Sem a flag m, ^ e $ marcam o início e o fim do texto inteiro. Ative a m e eles passam a corresponder a cada quebra de linha, então um padrão como ^\w+ encontra a primeira palavra de cada linha, e não só da primeira linha.
Por que a página trava com alguns padrões?
Quantificadores aninhados como (a+)+$ causam backtracking catastrófico, e o testador não tem limite de tempo. Em um teste no Node com o mesmo código, 27 letras levaram cerca de 2 segundos e cada letra extra dobrou esse tempo. Restrinja o grupo interno e recarregue a aba se ela travar.
Posso substituir texto com este testador de regex?
Não, ainda não existe modo de substituição. O testador mostra apenas correspondências e grupos de captura. Para planejar uma substituição, confira se cada grupo captura a parte certa e depois use-o como $1 em String.replace no seu próprio código.
O texto que eu testo é enviado para algum lugar?
O texto do teste não é enviado; a correspondência roda no seu navegador. No site em produção, o Google Analytics registra cada execução de correspondência e o tempo que ela levou. Para um padrão inválido, ele também recebe a mensagem de erro, que no Chrome inclui o próprio padrão.
Recursos do testador de regex para padrões JavaScript
Seu padrão roda no mecanismo RegExp do próprio JavaScript do navegador, então um padrão que corresponde aqui corresponde da mesma forma no seu código JS.

Destaque as correspondências da regex enquanto digita
Cada correspondência no seu texto de teste é marcada em cor, e o número de correspondências acima dele se atualiza a cada alteração. Com g ativada você vê todas as correspondências; desativada, só a primeira.
- Recalcula a cada tecla digitada
- A flag g encontra todas as correspondências
- Número de correspondências exibido acima do texto

Veja os grupos de captura de cada correspondência
Abaixo dos destaques, cada correspondência ganha uma linha própria com seus grupos. Grupos nomeados aparecem pelo nome, como word: longer, e grupos sem nome aparecem como Grupo 1, Grupo 2 e assim por diante.
- Grupos nomeados listados pelo nome
- Grupos sem correspondência mostram um traço
- Uma linha por correspondência
Quatro flags, um clique para cada
Botões ao lado do padrão alternam global (g), ignorar maiúsculas e minúsculas (i), multilinha (m) e dotAll (s). A flag g começa ativada. Ainda não há as flags u, y ou d.
Veja por que um padrão falha
Um padrão inválido mostra a mensagem do próprio mecanismo, como Unterminated group ou Nothing to repeat, em uma caixa vermelha. Corrija o padrão e as correspondências voltam.
Comece por um exemplo
Três padrões de exemplo carregam com um clique: endereços de e-mail, datas ISO como 2024-01-15 e um grupo nomeado para palavras de cinco letras ou mais. Copiar coloca o padrão na sua área de transferência como /pattern/flags.
Seu texto de teste fica aqui
A correspondência roda no seu dispositivo e o texto que você testa nunca é enviado. As estatísticas de uso registram quanto tempo uma correspondência levou e, para um padrão inválido, a mensagem de erro, que pode incluir o padrão.
Casos de uso comuns de regex
Três tarefas do dia a dia em que testar uma regex antes evita um bug depois.
Validação de formulários
Confira um padrão de e-mail, telefone ou CEP com exemplos reais antes de colocá-lo em um formulário. Cole entradas boas e ruins em linhas separadas e veja quais correspondem.
- Cole entradas válidas e inválidas, uma por linha
- Ative m para que as âncoras correspondam a cada linha
- Confirme que o padrão rejeita todos os exemplos ruins
Análise de logs
Extraia campos de linhas de log, como endereços IP, carimbos de data e hora e códigos de status. Cole algumas linhas de um arquivo de log e use grupos para capturar cada parte.
- Capture endereços IP com grupos numerados
- Encontre datas ISO como 2024-01-15
- Dê um nome a cada grupo para que todo campo tenha rótulo
Busca de texto antes de substituir
Encontre todas as URLs, hashtags ou palavras repetidas em um bloco de texto antes de escrever a etapa de substituição no seu código. O número de correspondências diz quantos resultados esperar.
- Encontre URLs e endereços de e-mail no texto colado
- Detecte letras ou palavras repetidas com uma referência anterior
- Confira o número de correspondências antes de uma substituição em massa
Explore mais ferramentas
Descubra outras ferramentas grátis que combinam muito bem com esta
Comparador de diff
Compare dois textos lado a lado
Formatador de JSON
Formate, valide e minifique JSON no seu navegador
Codificador de URL
Codifique e decodifique componentes de URL
Markdown para HTML
Converta Markdown em HTML com pré-visualização em tempo real
Codificador Base64
Codifique e decodifique strings Base64
Gerador de hash
Gere hashes SHA-1, SHA-256 e SHA-512 de textos ou arquivos