Testador de regex

Digite a expressão e o texto: as correspondências são destacadas na hora, com os grupos de captura.

Prontos:

Correspondências
Substituir (replace)

Tudo é processado no seu navegador. Nada é enviado para servidores.

Como usar

  1. Digite a expressão regular entre as barras (sem as barras) e marque as flags.
  2. Cole o texto de teste: as correspondências ficam destacadas e a tabela mostra posição e grupos.
  3. Para trocar trechos, abra Substituir e use $1, $2 ou $<nome> para os grupos.

Resumo rápido da sintaxe

.Qualquer caractere (menos quebra de linha, sem a flag s)
\d \w \sDígito · letra, número ou _ · espaço em branco (maiúsculas negam: \D \W \S)
[abc] [^abc] [a-z]Um dos caracteres · nenhum deles · intervalo
* + ? {3} {2,5}0 ou mais · 1 ou mais · opcional · exatamente 3 · de 2 a 5
*? +?Versões “preguiçosas”: pegam o mínimo possível
^ $ \bInício · fim (da linha, com a flag m) · limite de palavra
( ) (?: ) (?<nome> )Grupo de captura · grupo sem captura · grupo nomeado
a|ba ou b
(?= ) (?! ) (?<= )Seguido de · não seguido de · precedido de (lookarounds)

Acentos em português

\w não reconhece letras acentuadas. Para nomes como “João”, use [A-Za-zÀ-ÿ] ou, com a flag u, \p{L} (qualquer letra).

O teste usa o motor de regex do JavaScript (o mesmo do navegador e do Node.js). A expressão roda num processo separado com limite de tempo, então padrões que travariam a página (backtracking catastrófico) são interrompidos com aviso.

Perguntas frequentes

Funciona para Python, PHP ou Java?

A sintaxe básica é a mesma, mas há diferenças (lookbehind, grupos nomeados, flags). O teste segue o JavaScript; confira os detalhes da linguagem que você usa.

Por que apareceu “tempo esgotado”?

Alguns padrões, como (a+)+$, levam tempo exponencial em certos textos. Interrompemos após 1 segundo. Reescreva o padrão evitando quantificadores aninhados.

Meu texto é enviado?

Não. A expressão é executada no seu navegador.