§

Padrão

Flags
§

Cadeia de teste

§

Correspondências

0 correspondências

    Ainda sem correspondências — digite um padrão e uma cadeia de teste acima.

    §

    Modo substituição

    Referência rápida

    Classes de caracteres

    \d
    Qualquer dígito, equivalente a [0-9].
    \w
    Qualquer caractere de palavra — letras, dígitos ou sublinhado.
    \s
    Qualquer espaço em branco — espaço, tabulação, nova linha, etc.

    Âncoras

    \b
    Uma asserção de largura zero em um limite de palavra.
    ^
    Início da entrada (ou de cada linha quando a flag m está ativa).
    $
    Fim da entrada (ou de cada linha quando a flag m está ativa).

    Quantificadores

    *
    Zero ou mais do token anterior, ganancioso.
    +
    Um ou mais do token anterior, ganancioso.
    ?
    Zero ou um do token anterior — também torna preguiçoso um quantificador precedente.
    {n,m}
    Entre n e m repetições do token anterior.

    Grupos

    (...)
    Grupo de captura — exposto como $1, $2, … nas substituições.
    (?:...)
    Grupo sem captura — agrupa sem consumir uma posição.
    (?...)
    Grupo de captura nomeado — exposto como $ nas substituições.

    Lookaround

    (?=...)
    Lookahead positivo — combina apenas se seguido por …
    (?!...)
    Lookahead negativo — combina apenas se NÃO seguido por …
    (?<=...)
    Lookbehind positivo — combina apenas se precedido por …
    (?
    Lookbehind negativo — combina apenas se NÃO precedido por …

    Escapes

    \\
    Uma barra invertida literal.
    \.
    Um ponto literal — escape qualquer metacaractere para combiná-lo literalmente.

    Regex faz parte do dia a dia de quem programa no Brasil porque praticamente todo documento oficial tem máscara: CPF no formato `\d{3}\.\d{3}\.\d{3}-\d{2}`, CNPJ no `\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}`, CEP `\d{5}-\d{3}`, a chave de acesso da NFe com seus 44 dígitos, a placa veicular padrão Mercosul `[A-Z]{3}\d[A-Z]\d{2}`, e a chave PIX que pode ser e-mail, telefone `+55`, CPF, CNPJ ou UUID v4. Quem faz back-office para o iFood, Mercado Livre, Magazine Luiza ou para a Sefaz consome catálogos enormes em CSV e precisa validar todos esses campos antes da ingestão. Teste seus padrões aqui no navegador, sem mandar dados de clientes para um serviço externo.

    Como o regex funciona no seu navegador?

    Todo ambiente JavaScript embarca um motor nativo de expressões regulares — new RegExp(pattern, flags) compila o seu padrão, e métodos como String.prototype.match, String.prototype.replace e RegExp.prototype.exec o executam contra qualquer cadeia de entrada. Este testador envolve esse motor em uma interface para que você possa editar, executar e inspecionar padrões sem sair do navegador. Nada do que você digita — padrão, flags, cadeia de teste ou substituição — é enviado pela rede.

    Como funciona o testador de regex?

    O pipeline são poucos passos curtos, todos executados no cliente a cada tecla pressionada (com debounce de 150 ms para manter a digitação fluida):

    1. O corpo do seu padrão é lido do campo acima (sem delimitadores / no início ou no fim — são decorativos). As flags selecionadas são concatenadas em uma string como gi ou gimsuy.
    2. new RegExp(patternBody, flags) compila o padrão. Se o motor lançar um SyntaxError (p. ex. um parêntese não pareado ou um escape inválido), a mensagem é exibida sobre a cadeia de teste e a lista de correspondências é limpa. O erro de compilação é o err.message real de V8 / SpiderMonkey / JavaScriptCore, então coincide com o que você veria nas DevTools.
    3. Para a lista de correspondências, o testador sempre enumera com uma flag global sintética — assim, mesmo desligando o g, a lista continua mostrando todas as correspondências. A proteção padrão contra correspondências de largura zero (if (m.index === rx.lastIndex) rx.lastIndex++) impede o laço de ficar girando em padrões que combinam com cadeia vazia. O modo Substituir honra o seu conjunto real de flags, então $& se comporta igual a String.prototype.replace.
    4. Entre cada iteração, o testador verifica performance.now() - start e aborta quando 50 ms se passam. Isso protege contra retrocesso catastrófico em entradas como (a+)+$ contra uma longa sequência de a — a aba, de outra forma, travaria. A proteção é de melhor esforço: um padrão patológico de correspondência única ainda pode consumir tempo dentro de uma única chamada exec. Se isso acontecer, atualize a aba e reescreva o padrão com um quantificador não ganancioso ou um estilo possessivo atômico (p. ex. [^x]*x).
    5. A cadeia de teste é dividida em segmentos no intervalo de cada correspondência e os segmentos correspondidos são envolvidos em elementos <mark class="rx-match rx-cap-N">, onde N percorre seis cores de paleta para que correspondências adjacentes sejam fáceis de distinguir à primeira vista. Os grupos numerados (m[1], m[2], …) e nomeados (m.groups) de cada correspondência são renderizados como linhas rotuladas abaixo; se a flag d estiver ativa, índices [start, end] por grupo também são exibidos.

    Por que usar este testador de regex?

    • Privacidade: cada padrão, cadeia de teste e substituição é executado no seu navegador usando o motor JavaScript RegExp embutido. Nada sai da aba — importante quando a entrada é um log de cliente, um padrão de credencial vazada ou qualquer outra coisa que você não colaria em um playground de regex SaaS hospedado.
    • Sabor honesto: o testador expõe exatamente o motor de regex que Node.js, Chrome, Safari, Firefox e qualquer validador de formulário baseado em navegador executam. Não há camada de tradução para o sabor Perl que esconda diferenças sutis — o que funciona aqui funciona no seu código.
    • Depuração de captura e grupos nomeados: cada grupo numerado ($1, $2, …) e nomeado ($<year>) é exibido por correspondência, então você pode construir um parser e ler as posições sem adivinhar. O modo Substituir permite combinar grupos livremente — $2-$1 troca as duas primeiras posições, $<name> insere uma posição nomeada e $& ecoa a correspondência inteira.
    • Proteção contra retrocesso catastrófico: um teto de 50 ms na enumeração aborta padrões patológicos como (a+)+$ antes de congelarem a aba. Você vê um erro explicativo em vez de um navegador travado, e a página se recupera imediatamente.

    Quais são as aplicações comuns de um testador de regex?

    Expressões regulares aparecem no desenvolvimento web, segurança e trabalho com dados — este testador foca nos casos de uso mais comuns:

    • Validação de formulário: prototipe um padrão de e-mail, telefone ou CEP, cole entradas de exemplo na cadeia de teste e confirme que cada caso positivo combina e cada caso negativo não combina antes de levar o padrão ao código de produção.
    • Análise de logs: cole um trecho de saída NGINX, de aplicação ou de auditoria, escreva um padrão com grupos nomeados para as partes que importam ((?<ip>…) (?<path>…)) e leia as posições capturadas por correspondência para confirmar que o seu parser está correto.
    • Buscar e substituir para refatoração: use o modo Substituir para reescrever identificadores em um trecho — (\w+)\.set(\w+)\($1.$2 = transforma chamadas de setters em atribuições de propriedade, e a prévia ao vivo mostra o resultado antes de aplicá-lo em um codemod.

    Como é um exemplo de regex?

    Tome o padrão (\d{4})-(\d{2})-(\d{2}) com a flag g, executado contra a cadeia de teste release 2025-11-15, prerelease 2026-05-25. O motor encontra duas correspondências. A primeira é 2025-11-15 com grupo 1 = 2025, grupo 2 = 11, grupo 3 = 15. A segunda é 2026-05-25 com o mesmo formato de grupos. No modo Substituir, o modelo de substituição $3/$2/$1 reescreve ambas as datas como 15/11/2025 e 25/05/2026 — uma conversão ISO para DMY em um único padrão que você pode verificar visualmente antes de plugar o padrão em um script.

    Use este testador como o caminho rápido para qualquer trabalho de regex — construir, depurar ou reescrever padrões. Tudo é executado localmente; nada é registrado; o motor de regex é o que o seu navegador embarca, então o comportamento coincide com o que o código de produção verá em tempo de execução.