Testador de Regex

Teste uma expressão regular de JavaScript contra o seu texto e veja cada correspondência e cada grupo de captura, no seu navegador.

Roda inteiramente no seu navegador. Nada é enviado, registrado ou armazenado.

Sem as barras em volta.
Qualquer uma entre g i m s u y d v.

Destaque


    

Escreva um padrão, cole o texto que você espera que ele case e veja na hora o que ele pega e o que ele deixa passar, com cada grupo de captura destacado.

Como funciona

O padrão é compilado pelo seu navegador e executado contra o texto enquanto você digita. O que você vê é exatamente o que a mesma expressão fará em JavaScript, porque é o mesmo motor.

Com a flag g, todas as correspondências são listadas; sem ela, só a primeira. A flag i ignora maiúsculas e minúsculas, m faz ^ e $ casarem nas fronteiras de linha, s deixa o ponto casar com uma quebra de linha, u liga o modo Unicode e y ancora a busca no último índice.

Os grupos de captura numerados aparecem em ordem; um grupo escrito como (?<nome>...) é exibido sob o nome dele.

Exemplos

Caso Entrada Resultado
Uma data ISO, separada em partes (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) ano, mês e dia como grupos nomeados
Cada hashtag de uma postagem #\w+ uma correspondência por hashtag, com a flag g

Perguntas frequentes

Qual dialeto de expressão regular é este?

JavaScript, como o seu navegador o implementa. PCRE, usado pelo PHP e pelo grep -P, e RE2, usado pelo Go, divergem em lookbehind, em quantificadores possessivos e em escapes de propriedades Unicode. Um padrão que funciona aqui não tem garantia de funcionar lá.

A página travou enquanto eu digitava um padrão.

Alguns padrões fazem retrocesso catastrófico com certas entradas — quantificadores aninhados como (a+)+ são o caso clássico. A busca sobre o texto inteiro é limitada e desiste com um aviso, mas uma única correspondência que dispara não pode ser interrompida por nada na página: o JavaScript não tem como parar uma expressão regular depois que ela começou. Recarregue a aba e trate isso como uma descoberta, não como um acidente: a mesma expressão em um servidor levaria um worker junto.

Eu incluo as barras?

Não. Escreva só o padrão e coloque as flags no campo de flags. Colar /abc/gi como padrão faz das barras parte do que você está casando.

O meu texto de teste é enviado para algum lugar?

Não, e ele é deliberadamente deixado de fora do link compartilhável também. Copiar o link compartilha o padrão e as flags, nunca o texto contra o qual você testou.

Bom saber

  • Os padrões nunca são executados no servidor. Uma expressão fornecida por um visitante que retroceda mal seria uma negação de serviço lá; em uma aba, não custa mais do que a aba.

Fontes

Todas as ferramentas de Código