O que é um testador de Regex?
O Testador de Regex permite criar e depurar expressões regulares com feedback instantâneo. Digite um padrão e escolha as flags (global, ignorar maiúsculas, multilinha, dotall), cole seu texto de teste e cada correspondência é destacada ao vivo enquanto você digita, com a contagem de correspondências. Ele também lista os grupos de captura numerados e nomeados da primeira correspondência e inclui uma biblioteca de padrões prontos — email, CPF, CEP, telefone brasileiro, URL, IPv4 e datas — além de uma referência rápida dos tokens de sintaxe mais comuns. Tudo usa o motor de regex nativo do JavaScript e roda localmente, então seus padrões e texto ficam privados.
Uma expressão regular (regex) é uma sequência de caracteres que define um padrão de busca. Os testadores de regex permitem escrever uma expressão e ver imediatamente quais partes de um texto ela corresponde, tornando muito mais fácil construir e depurar padrões antes de incorporá-los no código.
Por que seu padrão não casa
Um regex que não retorna nada raramente está com a sintaxe quebrada — normalmente é um destes comportamentos fazendo exatamente o que foi mandado fazer.
Quantificadores gulosos engolindo demais
Contra <b>um</b> e <b>dois</b>, o padrão <.+> casa a linha inteira, não a primeira tag: o + pega tudo o que consegue e só devolve o que for obrigado. Acrescente uma interrogação para torná-lo preguiçoso — <.+?> — e ele para no primeiro sinal de fechamento.
Um ponto (ou mais, ou parêntese) sem escape
O ponto significa "qualquer caractere", então 3.14 também casa com 3x14 e 3914. Para casar um ponto literal, escape-o: 3\.14. O mesmo vale para + * ? ( ) [ ] { } ^ $ | e a própria barra invertida — dentro de uma classe de caracteres a maioria perde o significado especial, e é por isso que [.] também funciona.
^ e $ ancorados na string inteira
Por padrão ^ significa início da entrada e $ significa fim da entrada, então um padrão como ^erro só vai casar se a primeiríssima linha começar assim. Ligue a flag m e as duas âncoras passam a valer para o início e o fim de cada linha, que é quase sempre o que você quer com arquivos de log.
\d e \w casando mais (ou menos) do que você espera
Sem a flag u, o \w do JavaScript é estritamente [A-Za-z0-9_], então ele não casa uma letra acentuada — um padrão feito para nomes pula "José" silenciosamente. Por outro lado, ao habilitar escapes de propriedade Unicode, \p{L} casa letras de todos os alfabetos, o que pode ser mais do que um validador deveria aceitar.
Quantificadores de relance
A diferença entre estes quatro é a origem da maioria dos tamanhos de correspondência inesperados. Considere o texto de teste aaa.
| Padrão | Significado | Casa em "aaa" | Observação |
|---|---|---|---|
| a+ | Um ou mais, guloso | aaa | Pega tudo o que consegue |
| a+? | Um ou mais, preguiçoso | a | Para no primeiro sucesso |
| a* | Zero ou mais, guloso | aaa | Pode não casar nada |
| a{2} | Exatamente dois | aa | Contagens fixas nunca são gulosas |
| a{1,} | Igual a a+ | aaa | Intervalos seguem a mesma regra gulosa |
Acrescentar ? depois de qualquer quantificador o torna preguiçoso. Essa é a solução do clássico problema do <.+>: o <.+?> para no primeiro fechamento em vez de ir até o último.
Testando uma Regex
- Digite uma expressão regular e ative as flags (g, i, m, s) que precisar.
- Cole o texto abaixo — as correspondências são destacadas na hora, com a contagem.
- Inspecione os grupos de captura ou clique em um padrão comum para começar de um modelo.
Teste de Padrão é Local
Testes de expressão regular são realizados inteiramente no seu navegador usando o mecanismo de regex do JavaScript. Os padrões e strings de teste que você fornece são processados localmente na sua máquina — nenhum dado é enviado a servidores externos.