Testador de expressões regulares: teste regex online

Teste uma expressão regular de JavaScript no seu texto: as correspondências ficam destacadas, os grupos (inclusive nomeados) aparecem em lista e as flags g, i, m, s, u, y ligam com um clique. Tem substituição com $1 e $<nome>.

//g
Flags

3 correspondências

A versão 2.4 saiu em 2026-03-15 e a correção, em 2026-04-02. O próximo lançamento está previsto para 2026-11-30.
#PosiçãoCorrespondênciaGrupos
1212026-03-15
1 year: 2026
2 month: 03
3 day: 15
2492026-04-02
1 year: 2026
2 month: 04
3 day: 02
31012026-11-30
1 year: 2026
2 month: 11
3 day: 30

Como usar

Digite a expressão regular sem as barras e cole o texto. O testador na hora:

Quem trabalha é o motor de regex do seu próprio navegador, então o resultado é o mesmo que o seu código em JavaScript ou TypeScript vai obter. Sem a flag g, só a primeira correspondência é encontrada, igual a match e replace. São exibidas até 1.000 correspondências.

O texto é processado no navegador e não é enviado a lugar nenhum.

Flags

Flag O que faz
g encontra todas as correspondências, não só a primeira
i ignora a diferença entre maiúsculas e minúsculas
m ^ e $ valem no início e no fim de cada linha, não só do texto inteiro
s o ponto . também corresponde à quebra de linha
u modo Unicode: classes \p{…}, caracteres fora do BMP (emojis) como um só caractere, sintaxe estrita
y busca “grudada” (sticky): cada correspondência precisa começar exatamente onde a anterior terminou

Cola rápida

Padrão Significado
. qualquer caractere, menos quebra de linha
\d, \w, \s dígito, letra latina/dígito/_, espaço em branco
\D, \W, \S tudo, menos o que está acima
[abc], [^0-9] um desses caracteres; qualquer um menos dígito
*, +, ? 0 ou mais, 1 ou mais, 0 ou 1 vez
{2,5} de 2 a 5 vezes
*?, +? versões preguiçosas (lazy): o mínimo possível de caracteres
^, $, \b início, fim, limite de palavra
(…), (?<nome>…), (?:…) grupo, grupo nomeado, grupo sem captura
a|b a ou b
(?=…), (?!…) seguido / não seguido de …
(?<=…), (?<!…) precedido / não precedido de …
\p{L} qualquer letra de qualquer alfabeto (precisa da flag u)

Exemplos

Números no texto. \d+ com a flag g em “Pedido 15 de R$ 1.250” dá três correspondências: 15, 1 e 250, porque o ponto do milhar quebra o número. Para pegá-lo inteiro, use \d[\d.]*.

Palavras repetidas. \b(\w+)\s+\1\b com as flags gi acha “o o” em “Leia o o manual”: \1 se refere ao texto capturado pelo primeiro grupo.

Espaços sobrando. Padrão \s{2,}, flag g e um único espaço como substituição: “espaços demais” → “espaços demais”.

Troca com grupos nomeados. O padrão (?<first>\p{L}+) (?<last>\p{L}+) com a flag u e a substituição $<last>, $<first> transformam “João Silva” em “Silva, João”.

A string de substituição

Por exemplo, o padrão (\d+)-(\d+)-(\d+) com a substituição $3/$2/$1 transforma 2026-03-15 em 15/03/2026.

Perguntas frequentes

Por que \w não reconhece letras como ã, ç ou é? No JavaScript, \w é só [A-Za-z0-9_], e \b é o limite entre esses caracteres. Com \w+, “João” vira Jo e o. Para letras de qualquer idioma, use \p{L} com a flag u.

Por que sem a flag g aparece só uma correspondência? É assim que o JavaScript funciona: str.match(re) e str.replace(re, …) sem g tratam só a primeira correspondência. O testador repete esse comportamento para o resultado bater com o seu código.

A página diz que a execução foi interrompida. O que isso quer dizer? Algumas expressões, como (a+)+$, levam tempo exponencial numa string que quase corresponde: é o chamado backtracking catastrófico (ReDoS). O testador roda numa thread separada e a interrompe depois de 2 segundos para a página não travar. No código de verdade, vale reescrever a expressão sem quantificadores aninhados.

Serve para regex de Python, PHP ou Java? A sintaxe básica é a mesma, mas há diferenças: o JavaScript não tem quantificadores possessivos como a++ nem grupos atômicos, as flags são definidas de outro jeito e, no Python, grupo nomeado se escreve (?P<nome>…). Expressões simples funcionam igual em todo lugar.

Para tirar linhas duplicadas ou ordenar listas, use as ferramentas de linhas; para comparar duas versões de um texto, a comparação de textos.