Testar regex

Teste expressões regulares e veja as correspondências destacadas em cores, com o conteúdo dos grupos e o resultado da substituição na hora.

Regex e texto

Flags

0 caracteres · 0 linhas

Resultado

Exibição do resultado

Insira uma regex e um texto para destacar as correspondências em cores.

Tudo é processado neste dispositivo. O que você digita não é enviado a lugar nenhum.

Usa as expressões regulares do JavaScript (navegador). A sintaxe pode ser um pouco diferente da do Python, PHP, Java etc.

Foi útil? Adoraríamos que você compartilhasse

Algo não funcionou ou tem uma ideia para melhorar?

Como usar

  1. 1. Digite a expressão regular

    Em “Expressão regular”, digite o padrão que você quer buscar. Símbolos chatos de digitar, como \d e [ ], entram na posição do cursor ao tocar nos botões logo abaixo. Você também pode escolher um padrão pronto, como e-mail ou data, em “Escolher um padrão comum”. Toque em “Significado”, no canto superior direito do campo, para ver com o que cada parte corresponde.

  2. 2. Insira o texto

    Em “Texto de teste”, cole ou digite o texto em que quer buscar (toque em “Exemplo” para usar um texto de exemplo). Na hora, as correspondências aparecem destacadas em “Resultado”, logo abaixo, com o total.

  3. 3. Mude as flags e veja a lista de correspondências

    Desative “g Todas”, em “Flags”, para buscar só a primeira correspondência (ative de novo para buscar todas). Em “Lista de correspondências”, abaixo, aparecem a posição de cada uma e o conteúdo dos grupos ($1, <year> etc.). Toque em uma linha para selecionar esse trecho no texto acima.

  4. 4. Extraia só as correspondências

    No alto de “Resultado”, escolha “Extrair”: só as correspondências aparecem, uma por linha. Se houver grupos, escolha só um deles, como <year>, no seletor “Correspondência inteira”. Ative “Remover duplicados” para juntar as repetidas; “Copiar resultado extraído” copia tudo e “Salvar como texto” salva em um arquivo.

  5. 5. Teste a substituição e copie

    No alto de “Resultado”, escolha “Substituir” e digite algo como $<day>/$<month>/$<year> em “Substituir por”: o texto substituído aparece na hora. Toque em “Copiar resultado” para copiá-lo.

Ideal para

  • Conferir se uma regex está certa

    Antes de colocar no código, veja pelas cores se ela pega só o que você quer e nada além disso. Quando estiver pronta, escolha uma linguagem como Python, PHP ou Go e copie no formato certo para colar direto no código.

    Desenvolvedores web e quem está aprendendo a programar

  • Entender uma regex escrita por outra pessoa

    Cole a regex de um código herdado ou de um artigo e clique em “Significado”: em poucas palavras, aparece com o que cada parte corresponde, como “Um dígito, 4 vezes”.

    Quem lê código e quem está aprendendo a programar

  • Extrair dados de logs ou planilhas

    Busque e-mails, datas ou números de pedido, liste tudo, um por linha, com “Extrair” e copie ou salve em um arquivo de texto.

    Quem analisa dados e equipes de suporte

  • Juntar só a parte de um grupo, sem repetições

    Extraia só o que está entre ( ), como o domínio de um e-mail ou o host de uma URL. Com “Remover duplicados” ativado, o que aparece muitas vezes fica uma vez só.

    Quem analisa dados e equipes de web

  • Testar uma substituição antes de aplicar

    Antes de substituir em massa no editor ou na planilha, confira o resultado usando $1 e afins.

    Quem organiza textos e tabelas

  • Criar a validação de um formulário

    Monte a regex que valida CEP ou telefone testando com várias entradas diferentes.

    Quem cria formulários

Bom saber

  • Usa as regex do JavaScript. Recursos que só existem em Python, PHP, Java ou .NET (quantificadores possessivos ++, (?i) etc.) não funcionam.
  • Ao copiar no formato de outra linguagem, as diferenças de sintaxe são ajustadas sempre que possível. O que não dá para ajustar (como lookbehind em Go) gera um aviso curto; teste também nessa linguagem.
  • Uma regex que demora demais é interrompida após 2 segundos, com um aviso. Se isso acontecer, reduza as repetições aninhadas.
  • A lista mostra as primeiras 300 correspondências, e o destaque e a extração vão até as primeiras 5.000 (a contagem é sempre completa).

Sobre o teste de expressões regulares

Expressões regulares (regex) descrevem formatos de texto, como “quatro dígitos seguidos” ou “letras com um @ no meio”, com símbolos curtos como \d{4} ou [\w.]+@[\w.]+. São usadas em buscas, substituições e validações em muitos programas e editores, mas um pequeno erro já faz a regex pegar algo diferente do que você queria.

Esta ferramenta testa a cada tecla com as regex do JavaScript do navegador e destaca as correspondências em cores. Ela também lista o conteúdo dos grupos (partes entre ( )) e dos grupos nomeados ((?<nome>…)) em cada correspondência, para você conferir se está extraindo a parte certa. Mesmo padrões que nunca terminam, como (a+)+, rodam à parte e com limite de tempo, para a página não travar.

O que cada flag faz
Ao ativarUso comum
g (Todas)Encontra todas as correspondênciasExtrair, substituir tudo
i (Ignorar caixa)Trata A e a como a mesma letraBuscar palavras
m (Por linha)^ e $ correspondem ao início e ao fim de cada linhaValidar linha a linha, logs
s (. pega quebras)O . também corresponde a quebras de linhaTrechos com várias linhas
u (Unicode)Trata emojis como um caractere e permite \p{…}Textos com emojis ou outros alfabetos

Perguntas frequentes

Respostas para as dúvidas mais comuns ao testar regex.

Meu texto ou minha regex são enviados para algum lugar?

Não. Tudo é processado no navegador do seu aparelho, e nada do que você digita é enviado a um servidor ou salvo. Dá para usar até com logs internos ou textos com dados pessoais.

Qual sabor (flavor) de regex é usado?

O do JavaScript (RegExp do navegador). Grupos nomeados (?<nome>…), lookbehind (?<=…) e \p{…} (flag u) também funcionam. Os detalhes da sintaxe podem mudar em Python, PHP, Java etc., então confira a documentação da linguagem que você vai usar.

Posso usar no código Python ou PHP?

Pode. No canto superior direito de “Expressão regular”, escolha entre JavaScript, Python, PHP, Java, Ruby e Go e clique no botão de copiar: a regex é copiada no formato de código dessa linguagem. As diferenças de sintaxe são ajustadas, como (?P<nome>…) no Python, \A e \z no Ruby e (?i) no Go. O que a linguagem não consegue expressar, como lookbehind no Go, gera um aviso curto abaixo do campo. A linguagem escolhida fica salva para a próxima vez.

Posso colar no formato /abc/gi?

Pode. Com o campo “Expressão regular” vazio, cole algo como /abc/gi: o padrão e as flags são separados sozinhos. E, escolhendo “JavaScript” no canto superior direito do campo e clicando no botão de copiar, a regex atual é copiada no formato /…/, pronta para colar no código JavaScript.

Dá para ver o que a regex significa?

Clique em “Significado”, no canto superior direito de “Expressão regular”: a regex é dividida em partes, e aparece com o que cada uma corresponde, como “Um dígito, 4 vezes” ou “Grupo year”. O conteúdo dos grupos aparece recuado, então dá para conferir também como os parênteses se combinam.

Dá para listar só as correspondências?

Escolha “Extrair”: as correspondências aparecem uma por linha. Se houver grupos, dá para escolher só essa parte ($1, <nome>). “Remover duplicados” junta as repetidas, e você pode copiar ou salvar em um arquivo de texto. Com a flag g desativada, só sai a primeira.

Onde vejo o conteúdo dos grupos?

Em “Lista de correspondências”, à direita, aparece o conteúdo de $1, $2… (ou <nome>, para grupos nomeados) em cada correspondência. Um grupo que não casou aparece como “(sem correspondência)”.

O que posso usar na substituição?

Escolha “Substituir” e use em “Substituir por”: $1, $2… (grupos), $<nome> (grupo nomeado), $& (a correspondência inteira) e $$ (um $ literal). Com a flag g ativada, tudo é substituído; desativada, só a primeira.

Apareceu “A busca demorou demais e foi interrompida”

Regex com repetição dentro de repetição, como (a+)+ ou (.*)*, podem ter uma explosão de cálculos com textos que não correspondem (backtracking catastrófico). Para a página não travar, a busca para após 2 segundos. Junte as repetições em uma só ou restrinja os caracteres, usando [^,]* no lugar de .*, por exemplo.

Como buscar sem diferenciar maiúsculas e minúsculas?

Ative “i Ignorar caixa”, em “Flags”. Maiúsculas e minúsculas, como A e a ou Ç e ç, passam a ser tratadas como a mesma letra (letras com e sem acento continuam diferentes).

^ e $ não correspondem a cada linha

Por padrão, ^ e $ só correspondem ao início e ao fim do texto inteiro. Para que valham em cada linha, ative “m Por linha”, em “Flags”.

Dá para buscar letras de outros alfabetos, como cirílico ou kanji?

Dá. Com a flag u ativada, \p{L} pega qualquer letra de qualquer alfabeto, e \p{Script=Cyrillic} pega só o cirílico. Para kanji, escolha “Kanji (ideogramas)” em “Escolher um padrão comum”: ele usa \p{Script=Han} e ativa o u sozinho.

É grátis?

Sim, é grátis. Sem cadastro, sem instalar nada e sem anúncios. Use quantas vezes quiser, com textos de qualquer tamanho.