Testador de regex
Funciona inteiramente no seu navegador. Seus arquivos e dados nunca saem do seu dispositivo.
| # | Correspondência | Grupos de captura | Grupos nomeados |
|---|---|---|---|
| 1 | hello@example.com | ||
| 2 | support@example.co |
Sobre esta ferramenta
Um testador de regex deixa você escrever um padrão e verificá-lo na hora contra um texto real. Digite um padrão, ative flags como g, i ou m, e cole um texto de teste: a ferramenta destaca cada correspondência, lista todas elas com seus grupos de captura numerados e nomeados, e permite testar uma string de substituição antes de usá-la no código.
Como funcionam a correspondência e a substituição?
A correspondência roda sobre o motor RegExp nativo do JavaScript, então a sintaxe e as flags se comportam exatamente como vão se comportar quando o padrão estiver no seu código. Sem a flag g, só a primeira correspondência é encontrada e destacada, do mesmo jeito que RegExp.exec funciona nativamente. Com g ativada, a ferramenta reúne todas as correspondências até um limite de 10.000, o que evita que um padrão que combina com quase todo caractere de um texto enorme gere uma lista impraticável. Correspondências de comprimento zero, do tipo que um padrão como a* pode produzir, são tratadas avançando uma posição extra a cada vez, para que a varredura não fique presa no mesmo lugar. Grupos de captura numerados e nomeados que não participaram de uma correspondência específica aparecem como string vazia em vez de undefined, para a lista de grupos continuar fácil de ler. O campo de substituição usa a sintaxe nativa de String.prototype.replace, então $1, $<nome>, $& e $$ funcionam exatamente como funcionariam no seu próprio código.
O que acontece se meu padrão for lento ou inválido?
A correspondência roda dentro de um Web Worker em vez de na thread principal, então um padrão patológico, com backtracking catastrófico que travaria a aba, não bloqueia a página. Se uma correspondência demorar demais, a ferramenta mostra uma mensagem de timeout e reinicia o worker automaticamente, então dá para editar o padrão e tentar de novo sem recarregar a página. Um padrão inválido, como parênteses desbalanceados ou uma flag desconhecida, é capturado e reportado como erro perto do campo de entrada em vez de falhar silenciosamente.
Meu texto de teste é enviado a algum lugar?
Não. Tudo, correspondência, substituição e destaque, acontece no seu navegador. Seu padrão e o texto de teste nunca saem da sua máquina, então dá para testar uma expressão regular contra uma linha de log com o e-mail de um cliente, um arquivo de configuração ou qualquer outro dado que você prefira não colar num site de terceiros.
Para que serve isso?
Use para validar formatos de entrada como números de telefone ou CEPs, extrair dados estruturados de linhas de log, ou conferir se um padrão de substituição com $1 ou $<nome> produz o resultado esperado antes de usá-lo no seu código. Veja o guia de expressões regulares da MDN para a sintaxe completa, ou a referência da comunidade regex101 se precisar de explicações para padrões escritos em outras linguagens.