Testador de regex

Teste padrões em texto real, direto no navegador.

Correspondências

  
#TipoValorPosição

Funciona no navegador. Nada do que você digita é enviado a lugar nenhum.

Como testar uma expressão regular

  1. Digite ou cole seu padrão e escolha as flags que precisar.
  2. Cole o texto contra o qual quer testar.
  3. Confira as correspondências destacadas, a tabela de grupos, ou pré-visualize uma substituição.

Referência rápida de sintaxe regex

PadrãoCombina com
\dQualquer dígito, de 0 a 9
\wQualquer letra, dígito ou caractere _
\sQualquer caractere de espaço em branco
+Um ou mais do token anterior
*Zero ou mais do token anterior
?Zero ou um, ou torna um quantificador preguiçoso
^ e $Início e fim do texto ou da linha

Recursos de regex do JavaScript

RecursoSintaxeNota
Grupos nomeados(?<nome>...)Compatível desde o ES2018
Lookbehind(?<=...) e (?<!...)Compatível desde o ES2018
Modo Unicodeflag uNecessário para escapes de propriedade Unicode como \p{Letter}
Sem diferenciar maiúsculas/minúsculasflag iMesma ideia da maioria das outras linguagens

Dicas para escrever padrões

  • Use uma barra invertida para escapar caracteres especiais como . ( ) [ ] quando quiser o caractere literal.
  • Use um grupo não capturante (?:...) para agrupar quando não precisar referenciar aquela correspondência depois.
  • Quantificadores gulosos pegam o máximo possível. Adicione um ? depois de um, como +?, para uma correspondência preguiçosa que para no primeiro ponto possível.
  • Teste com casos extremos, como uma string vazia ou espaço em branco extra, não só o texto que você espera combinar.

Perguntas frequentes sobre Testador de regex

Por que meu padrão parou de responder?

Alguns padrões podem retroceder de forma exponencial em certos textos. A correspondência roda em um worker em segundo plano com limite de 1,5 segundo, então um padrão descontrolado é interrompido em vez de travar a aba.

O que significam as flags?

g encontra todas as correspondências em vez de só a primeira, i ignora maiúsculas e minúsculas, m faz ^ e $ combinarem linha por linha, s deixa o ponto combinar com quebras de linha, u ativa o modo Unicode completo, y ancora a correspondência ao último índice, e d adiciona posições de início e fim para cada correspondência.

A caixa de substituição muda meu texto de teste?

Não. Ela mostra o que String.replace produziria em uma caixa de resultado separada, então o texto de teste que você digitou continua exatamente como estava.

Grupos de captura nomeados são compatíveis?

Sim. Escreva um grupo como (?<nome>...) e o nome dele aparece ao lado do número do grupo na tabela de correspondências.

Meu texto é enviado para algum lugar?

Não. A correspondência roda em um worker dentro da sua própria aba do navegador, e nada do que você digita sai da página.

Qual variante de regex isso usa?

O mecanismo RegExp nativo do JavaScript no seu navegador, o mesmo que roda seus padrões se você estiver construindo um app web ou um script Node.js.

O que é retrocesso catastrófico?

É quando um padrão com grupos repetidos aninhados, como (a+)+b, pode demorar exponencialmente mais para falhar conforme a entrada cresce mesmo um caractere. O limite de 1,5 segundo do worker aqui pega um padrão assim antes que ele trave a página.

^ e $ podem combinar com o início e fim de cada linha, não só do texto todo?

Sim, ative a flag m (multilinha). Sem ela, ^ e $ só combinam com o início e o fim exatos do texto de teste inteiro.

Ferramentas relacionadas