Sobre esta ferramenta
Expressões regulares aparecem o tempo todo no código de teste: validar uma linha de log, extrair um ID de uma resposta, validar um formato, mascarar segredos em relatórios. Este testador usa o próprio motor RegExp de JavaScript do navegador, então os resultados batem com o que Playwright, Cypress, Jest e Node vão fazer. Os resultados são destacados enquanto você digita, todos os grupos de captura (numerados e nomeados) são listados com sua posição e a prévia de substituição mostra o resultado de String.replace. A busca roda em um worker em segundo plano que é interrompido após 1,5 segundo, então um padrão com backtracking catastrófico não trava a página.
Como usar
- Digite um padrão sem as barras ao redor e ative as flags necessárias (g, i, m, s, u, y).
- Cole uma string de teste ou clique em um dos padrões de QA para carregar um padrão com texto de exemplo correspondente.
- Confira o texto destacado e a tabela de resultados com grupos e índices.
- Ative “Replace preview” para testar uma substituição usando $1, $<name> ou $&.
Perguntas frequentes: Testador de regex
Um padrão que funciona aqui vai funcionar em Java ou Python?
Quase sempre, mas nem sempre. O básico é compartilhado, mas grupos nomeados são escritos (?<name>) em JavaScript e Java e (?P<name>) em Python, o suporte a lookbehind varia e as flags s e y são específicas do JavaScript. Para qualquer coisa avançada, teste na linguagem de destino.
Por que o testador parou com timeout?
Padrões com quantificadores aninhados, como (a+)+ ou (.*)*, podem levar tempo exponencial em entradas que quase casam. Isso se chama backtracking catastrófico, e o mesmo padrão poderia travar uma execução de testes ou um servidor (ReDoS). Torne o quantificador interno mais específico ou remova o aninhamento.
Por que vejo só um resultado?
Sem a flag g (global), uma regex JavaScript para depois do primeiro resultado. Ative g para encontrar todas as ocorrências; é também o que String.prototype.matchAll e replaceAll exigem.