Como testar uma expressão regular antes que ela quebre seu código
Uma expressão regular que parece correta pode, sem alarde, casar com a coisa errada, deixar passar um caso extremo ou não casar com nada. A forma mais barata de perceber isso é testar o padrão contra texto de exemplo real antes que ele chegue perto do seu código. Este guia explica o que é uma regex em termos simples e como testar uma com segurança usando a ferramenta gratuita Testador de Regex.
O que é de fato uma expressão regular
Uma expressão regular, ou regex, é um pequeno padrão que descreve um formato de texto. Em vez de procurar por uma palavra exata, você descreve a regra: “um arroba com letras dos dois lados”, ou “um ou mais dígitos”, ou “uma palavra no início de uma linha”. Tudo o que casa com esse formato é um acerto.
Esse poder também é a armadilha. Um padrão pode casar com mais do que você pretendia (ganancioso demais) ou com menos do que você precisa (rígido demais), e a diferença muitas vezes é um único caractere que você não consegue notar a olho nu. Você não sabe de verdade o que uma regex faz até executá-la contra um texto e observar o que acende.
Por que testar contra texto de exemplo economiza horas
Depurar uma regex dentro de um programa em execução é lento e doloroso: você muda o padrão, reinicia, alimenta com dados e aperta os olhos diante da saída. Um testador dedicado encurta esse ciclo. Você cola o seu padrão e um bloco de texto representativo, e ele destaca cada correspondência instantaneamente. Você vê o que acertou, o que foi ignorado e por quê.
O truque é testar contra texto que espelhe a realidade. Inclua os casos complicados de propósito:
- Os exemplos limpos que você espera que casem.
- Os casos quase-mas-não-totalmente que não deveriam casar.
- As entradas bagunçadas do mundo real com espaços a mais, pontuação estranha ou maiúsculas e minúsculas misturadas.
Se o seu padrão sobreviver aos três, é muito mais provável que sobreviva em produção.
Padrões comuns para começar
Você raramente escreve uma regex a partir de uma página em branco. Alguns blocos de construção cobrem a maioria das necessidades do dia a dia:
- Dígitos.
\dcasa com um único dígito;\d+casa com um ou mais em sequência, ótimo para encontrar números. - Caracteres de palavra.
\w+casa com letras, dígitos e sublinhados, útil para capturar identificadores. - Um formato aproximado de e-mail. Algo como
\S+@\S+\.\S+captura o padrão básico “texto, arroba, texto, ponto, texto” para uma verificação rápida. - Âncoras.
^prende uma correspondência ao início de uma linha e$ao fim, de modo que você casa com entradas inteiras em vez de fragmentos.
Trate isso como pontos de partida. A jogada certa é colar um, ver como ele se comporta no seu próprio texto e apertar a partir daí.
Como testar uma regex no seu navegador
A ferramenta gratuita Testador de Regex roda inteiramente no seu navegador, então o padrão e qualquer texto de exemplo que você colar permanecem no seu próprio dispositivo e nunca são enviados. Isso importa quando seus dados de teste são linhas de log reais ou registros de usuários.
- Abra a ferramenta e insira o seu padrão.
- Cole um bloco de texto de exemplo, incluindo os casos extremos que você quer verificar.
- Observe as correspondências serem destacadas enquanto você digita e ajuste o padrão até que apenas o texto certo acenda.
- Copie o padrão funcional para o seu código com confiança.
Como a correspondência acontece na aba, você pode testar contra dados de exemplo sensíveis sem que eles saiam da sua máquina.
Itere em passos pequenos e seguros
A maneira confiável de construir uma regex é fazê-la crescer aos poucos, em vez de escrever uma expressão gigante e torcer. Comece com o padrão mais simples que casa com o seu caso principal, confirme-o no testador, depois acrescente uma restrição de cada vez. Após cada mudança, verifique novamente se os seus exemplos de “não deveria casar” continuam apagados. Se um ajuste de repente casa com algo que não deveria, você sabe exatamente qual mudança causou isso. Passos pequenos transformam a regex de adivinhação em algo sobre o qual você consegue realmente raciocinar.
Ferramentas relacionadas para trabalhar com texto
Uma regex muitas vezes é um passo dentro de um trabalho maior de manipulação de texto. Quando os dados contra os quais você está casando são JSON, o Formatador de JSON primeiro o indenta para que você possa ver a estrutura que está mirando. Quando você ajusta um padrão e quer ver exatamente o que mudou na saída, o Comparador de Diferenças destaca as diferenças linha por linha. E se você está extraindo pedaços de endereços web, o Analisador de URL decompõe uma URL em suas partes, o que costuma ser mais limpo do que casar o conjunto todo na mão.
A versão curta
Uma regex descreve um formato de texto, e a única forma de confiar em uma é testá-la contra exemplos reais antes que ela toque o seu código. Alimente-a com suas correspondências esperadas, seus quase-acertos e suas entradas bagunçadas, depois itere uma restrição de cada vez. A ferramenta gratuita Testador de Regex faz isso ao vivo no seu navegador, de forma privada e sem cadastro, para que você acerte o padrão antes que ele tenha a chance de quebrar qualquer coisa.
Experimente Testador de Regex agora
Testador de regex online e grátis. Digite o padrão e as flags, cole o texto e veja cada correspondência com índice e grupos de captura no navegador.
Abrir Testador de Regex