Fastway

Testador de Regex

//g
Padrões comuns

Referência rápida

\ddígito
\wletra/dígito
\sespaço
.qualquer caractere
+1 ou mais
*0 ou mais
?opcional
[abc]conjunto
^início da linha
$fim da linha

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ãoSignificadoCasa em "aaa"Observação
a+Um ou mais, gulosoaaaPega tudo o que consegue
a+?Um ou mais, preguiçosoaPara no primeiro sucesso
a*Zero ou mais, gulosoaaaPode não casar nada
a{2}Exatamente doisaaContagens fixas nunca são gulosas
a{1,}Igual a a+aaaIntervalos 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

  1. Digite uma expressão regular e ative as flags (g, i, m, s) que precisar.
  2. Cole o texto abaixo — as correspondências são destacadas na hora, com a contagem.
  3. 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.

FAQ

Qual variante de regex é usada?

Usa o motor de expressões regulares do JavaScript (ECMAScript) do seu navegador, incluindo grupos nomeados e as flags g, i, m e s.

Meu texto de teste é enviado a algum lugar?

Não. A correspondência roda inteiramente no seu navegador — nada é enviado.

Consigo ver os grupos de captura?

Sim, os dois tipos. Grupos numerados vêm de parênteses simples e são listados na ordem; grupos nomeados usam a sintaxe (?<ano>\d{4}) e aparecem pelo nome — que é o que você quer quando um padrão tem meia dúzia de capturas e contar posições deixa de ser prático.

Quais flags de regex esta ferramenta suporta?

A ferramenta suporta todas as flags padrão do JavaScript: g (global), i (sem distinção de maiúsculas), m (multilinha), s (dotAll — ponto corresponde a nova linha), u (unicode) e d (índices de correspondência). Combine flags livremente.