Testadores
Ferramentas para testar padrões e inspecionar diferenças. Todo o processamento acontece no seu navegador, então seus dados nunca são enviados.
- Testador de RegexEscreva um padrão e veja cada correspondência destacada conforme digita, com grupos de captura e posições. A busca roda em uma thread separada, então nem um padrão com backtracking catastrófico trava a página.
- Comparar TextosCole dois textos para ver exatamente o que mudou, linha a linha e palavra a palavra. Tudo roda no seu navegador, então nenhuma das versões é enviada.
Teste padrões ou compare textos
Use o testador de expressões regulares para analisar correspondências, grupos de captura, resultados de substituição e backtracking potencialmente pesado. A busca roda em um worker com limite de tempo, impedindo que uma expressão arriscada trave a página.
Use a ferramenta de diferenças quando o problema for conteúdo alterado, e não um padrão. Ela oferece visualizações lado a lado e unificada, opções para maiúsculas, espaços e finais de linha, e mantém os dois documentos no seu dispositivo.
Duas formas de perguntar o que mudou
Um testador de padrões responde a uma pergunta sobre forma: este texto corresponde à regra que escrevi e quais partes ele capturou. Um diff responde a uma pergunta sobre conteúdo: estas duas coisas deveriam ser iguais, então me mostre onde não são. A maioria das sessões de depuração precisa de uma ou de outra, e pegar a errada é o que transforma vinte minutos numa tarde inteira.
Se você está validando um campo, extraindo valores de uma linha de log ou substituindo texto numa base de código, é um problema de padrão. Se está comparando duas exportações, dois arquivos de configuração ou uma resposta antes e depois de um deploy, é um problema de diferença.
Padrões falham naquilo que você não testou
A maioria das expressões regulares é escrita testando entradas que deveriam casar até que uma case, o que produz de forma confiável algo permissivo demais. O padrão sem âncoras, que aceita qualquer coisa com um endereço válido escondido dentro, é o resultado clássico, e passa em todos os testes que o autor pensou em escrever.
Então teste os negativos: o valor malformado, o delimitador que aparece dentro de um campo, a linha que é quase, mas não exatamente, o formato esperado. E lembre que o motor aqui é o do seu navegador, então um padrão com lookbehind ou grupos nomeados pode se comportar de outro jeito em Python, Go ou PCRE.
Quando duas linhas idênticas não são idênticas
A surpresa mais comum num diff é uma mudança que você não consegue ver, e a causa quase sempre é invisível: espaços no fim da linha, quebras de linha do Windows contra as do Unix, um tab onde o outro arquivo tem espaços, um espaço não separável colado de um documento, ou um BOM no começo da primeira linha.
As opções para ignorar maiúsculas, espaços e espaços finais existem para estreitar isso rapidamente. Desligue-as depois de encontrar a mudança real, porque em arquivos de configuração o espaço em branco às vezes é a mudança.
