Testador de regex

Teste expressões regulares JavaScript ao vivo: destaque cada correspondência, veja grupos de captura e grupos nomeados, alterne flags e visualize a substituição no navegador.

/ /g
Flags

Correspondências

Nenhuma correspondência

# Posição Correspondência Grupos

Substituir

O que é uma expressão regular?

Uma expressão regular (regex) é um padrão que descreve texto, como "quatro dígitos, um hífen e dois dígitos". Ela é usada para validar dados, buscar em logs, extrair valores e substituir texto em massa. Este testador usa o motor JavaScript do seu navegador, então os resultados são os mesmos de String.prototype.match e replace em navegadores e no Node.js.

Como usar

  1. Digite o padrão sem as barras em volta e marque as flags de que precisa.
  2. Cole o texto de teste. Cada correspondência é destacada, com cores alternadas para separar as que ficam lado a lado.
  3. A tabela mostra a posição e os grupos de cada correspondência. Clique em uma linha para selecioná-la no texto.
  4. Preencha "Substituir por" para ver o resultado. Use $1 ou $<name> para os grupos e $& para a correspondência inteira.

Exemplo: mudar o formato de datas

O padrão (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encontra datas como 2024-03-15 e dá nome às três partes. Substituindo por $<day>/$<month>/$<year>, o resultado é:

15/03/2024

Referência rápida

SintaxeSignificado
\dUm dígito 0-9
\wUma letra, um dígito ou sublinhado
\sEspaço em branco: espaço, tab, quebra de linha
.Qualquer caractere exceto quebra de linha (com s: qualquer um)
* + ?0 ou mais, 1 ou mais, 0 ou 1
{2,4}Entre 2 e 4 vezes
^ $Início e fim do texto (com m: de cada linha)
\bLimite de palavra
[abc] [^abc]Um entre a, b, c / qualquer um exceto eles
a|ba ou b
(...)Grupo de captura: $1, $2 na substituição
(?:...)Grupo sem captura
(?<name>...)Grupo nomeado: $<name> na substituição
(?=...) (?!...)Seguido de / não seguido de (lookahead)

Perguntas frequentes

Qual tipo de expressão regular é usado?

O do JavaScript (ECMAScript), igual aos navegadores e ao Node.js. A maior parte da sintaxe também funciona em Java, Python, PHP e Go, mas há diferenças: o Python escreve grupos nomeados como (?P<name>...), e flags inline como (?i) no início do padrão não são aceitas aqui; use as caixas de flags.

Por que o teste parou por tempo limite?

Alguns padrões, principalmente com quantificadores aninhados como (a+)+$, fazem o motor testar uma quantidade enorme de combinações ("backtracking catastrófico"). O testador roda em segundo plano e para depois de 2 segundos para a página não travar. Reescreva o padrão para evitar repetições aninhadas: o mesmo padrão também pode travar o seu servidor.

Preciso escrever duas barras invertidas?

Aqui não: digite \d direto. Quando copiar o padrão para uma string em código Java, C# ou JavaScript (não um literal /.../), cada barra invertida precisa ser escrita duas vezes, como em "\\d{4}".

Meu texto é enviado para um servidor?

Não. A busca e a substituição acontecem totalmente no navegador, então você pode testar padrões com logs ou dados que não devem sair do seu computador.