Testador de Regex
Teste expressões regulares em um texto de exemplo real e veja cada match destacado, tudo no seu navegador.
Ferramentas relacionadas
Sobre esta ferramenta
Expressões regulares se pagam na primeira vez em que você realmente precisa de uma: validar o formato de um e-mail, CPF ou telefone, puxar o número de versão de uma linha de log, achar todas as ocorrências de uma variável antes de renomeá-la ou limpar dados colados de algum lugar com formatação inconsistente. Só que a sintaxe é densa e fácil de errar em detalhes, e é justamente por isso que vale gastar um minuto testando o padrão em um texto de exemplo real antes de ele ir parar no código de produção ou em um script que vai rodar em uma base inteira.
Esta ferramenta aplica o seu padrão ao texto de teste em tempo real, enquanto você digita, e mostra todos os matches de uma vez, sem deixar nada para adivinhação. Os matches ficam destacados direto no texto, então dá para ver na hora se o padrão está guloso onde não deveria, se esqueceu algum caso de borda ou se está pegando mais (ou menos) do que você queria. Cada match também aparece listado abaixo, com a posição exata e os grupos de captura que gerou.
Os três botões de flag mudam o comportamento do motor de regex do JavaScript: ignorar maiúsculas/minúsculas (`i`) faz `A` e `a` serem equivalentes; multilinha (`m`) faz `^` e `$` casarem com o início e o fim de cada linha, não só do texto inteiro; e ponto inclui quebra de linha (`s`) faz o `.` casar também com quebras de linha, o que não acontece por padrão. A busca é sempre global na prática — todas as ocorrências são encontradas, não só a primeira —, já que é isso que você quer quase sempre ao testar um padrão, mesmo sem pensar na flag `g`.
Grupos de captura — as partes do padrão entre parênteses — servem para extrair pedaços específicos de um match, e não só confirmar que o texto todo casou. É exatamente o que você precisa para tirar uma data, um nome de usuário ou um parâmetro de query de uma string maior. A ferramenta mostra os grupos capturados de cada match ao lado do match completo, para você confirmar que o agrupamento faz o que você espera antes de colocar no código de extração.
Tudo roda no motor `RegExp` nativo do navegador, que segue o padrão ECMAScript — o mesmo que o seu código JavaScript vai usar de verdade. Nada do que você digita é enviado para lugar nenhum, e a ferramenta continua funcionando sem internet depois que a página carrega. Quando os matches estiverem do jeito que você quer, use o botão “Enviar para” para passá-los direto a outra ferramenta do kit, como um formatador ou um contador de caracteres.
Perguntas frequentes
Por que a ferramenta sempre busca globalmente, mesmo sem marcar a flag “g”? expand_more
Quando você está testando um padrão, quase sempre quer ver todos os matches do texto, não só o primeiro — então a ferramenta sempre percorre o texto inteiro. As opções i, m e s continuam mudando o comportamento exatamente como mudariam no seu código.
Qual a diferença entre as flags multilinha (m) e ponto inclui quebra de linha (s)? expand_more
A multilinha (m) muda onde ^ e $ ancoram — no início/fim de cada linha em vez do texto inteiro. A flag s muda o que o . pode casar — normalmente ele casa com qualquer caractere menos quebra de linha, e com s passa a casar com quebras de linha também. Elas são independentes e vivem sendo confundidas.
Por que meu padrão aparece como inválido? expand_more
A ferramenta cria um RegExp de JavaScript de verdade com o seu padrão e as flags, então mostra exatamente o mesmo erro de sintaxe que o seu código teria — normalmente um grupo não fechado, um caractere especial sem escape ou uma combinação de flags inválida.
A ferramenta suporta grupos de captura nomeados? expand_more
Sim. Grupos de captura nomeados — por exemplo, chamar um grupo de “ano” em vez de deixá-lo só pela posição — são reconhecidos, e os valores aparecem junto com os grupos posicionais.
Meu texto de teste é enviado para algum lugar? expand_more
Não. O matching roda inteiramente no seu navegador, usando o motor de expressões regulares embutido — nada é enviado a um servidor, e a ferramenta continua funcionando offline depois que a página carrega.