Teste expressões regulares com destaque animado de correspondências.
Última atualização
Flags
//g
Texto de testeCole texto para começar
Cole ou digite o texto a testar…
CorrespondênciasSem correspondências
As correspondências aparecem aqui — índices, grupos capturados e contagens, ao vivo.
O que é um regex tester?
Um regex tester deixa você escrever uma expressão regular e ver na hora o que ela casa dentro de um texto de exemplo. Devs usam regex pra validar entradas, extrair dados de strings, vasculhar logs, limpar texto, montar comandos no editor e escrever regras de busca e substituição.
Regex parece coisa de outro mundo no começo porque uns poucos símbolos carregam muito significado. Um testador ao vivo desmistifica isso: cada caractere que você digita atualiza os matches destacados e os grupos de captura, então dá pra ir experimentando até o padrão fazer exatamente o que você quer.
Cada linguagem usa um motor de regex um pouco diferente (JavaScript, PCRE, Python, Java, Go, .NET). O essencial — caracteres, classes de caracteres, quantificadores, âncoras e grupos — funciona em qualquer lugar. As diferenças aparecem nos recursos avançados (lookbehind, grupos nomeados, quantificadores possessivos).
O que você vai aprender testando regex
Um padrão descreve o *formato* do texto, não o significado. \d+ casa uma sequência de dígitos, mas não sabe se aquele número faz sentido.
Flags mudam o comportamento: g acha todos os matches, i ignora maiúsculas/minúsculas, m faz ^ e $ casarem nos finais de linha, s permite que . case quebras de linha.
Grupos de captura (...) extraem partes do match — não só verificam se a string inteira bate. São essenciais pra parsing.
Como usar o regex tester passo a passo
1
Digite seu padrão
Coloque a expressão regular no campo do padrão. Não inclua as / em volta — isso é sintaxe de literal do JavaScript, não faz parte do padrão em si.
2
Marque as flags que você precisa
Na maioria das vezes você vai querer g (acha todos os matches) e i (ignora caixa). Use m pra âncoras linha a linha e s pra deixar . casar quebras de linha.
3
Cole seu texto de teste
Jogue uma amostra de texto na área de teste. Os matches são destacados conforme você digita, e os grupos de captura aparecem listados embaixo da lista de matches.
4
Leia o painel de matches
Cada match mostra a posição, o texto completo e os grupos capturados. Use isso pra confirmar que o padrão pega o que você quer e ignora o que não quer.
5
Refine até ficar certo
Aperte os quantificadores, adicione âncoras (^, $) ou escape caracteres literais (\., \?) até os matches e grupos baterem exatamente com o que seu código precisa.
Cheat sheet de regex
Os 80% de regex que você vai usar 99% do tempo. Salva nos favoritos — é o jeito mais rápido de lembrar a sintaxe. Pra gramática completa, dá uma olhada no guia de expressões regulares da MDN.
Token
Significado
Exemplo
.
Qualquer caractere (menos quebra de linha)
a.c casa abc, a-c
\d\D
Dígito / não-dígito
\d+ casa 123
\w\W
Caractere de palavra (letra/dígito/_) / não-palavra
\w+ casa hello_1
\s\S
Espaço em branco / não-espaço
\s+ casa espaços e tabs
[abc]
Qualquer um entre a, b ou c
[aeiou] casa uma vogal
[^abc]
Nenhum entre a, b ou c
[^0-9] casa não-dígitos
*+?
0+, 1+, 0 ou 1 do anterior
a+ casa a, aaa
{n}{n,m}
Exatamente n / entre n e m
\d{3,5} 3 a 5 dígitos
^$
Início / fim da string (ou da linha com m)
^Error linha começa com Error
(...)
Grupo de captura
(\d+) captura os dígitos
(?:...)
Grupo sem captura
(?:foo|bar) agrupa sem capturar
a|b
Alternância — a ou b
sim|nao
\b
Limite de palavra
\bcat\b casa cat, mas não cats
Exemplos de regex pra testar
Casar o formato básico de um e-mail
Padrão
^[\w.+-]+@[\w-]+\.[\w.-]+$
Texto
learner@coddy.tech
Isso pega o formato básico algo@algo.algo. Validação de e-mail no mundo real é bem mais permissiva que isso — em formulários, é melhor usar type="email" e uma checagem no servidor.
Extrair todos os números de uma frase
Padrão
\d+
Texto
Lesson 12 has 3 tasks and 2 quizzes.
Com a flag g, isso encontra cada sequência de dígitos: 12, 3, 2. \d+ é o equivalente em regex de "um ou mais dígitos".
Tirar um id de uma URL com grupo de captura
Padrão
/users/(\d+)
Texto
/users/42/profile
O match completo é /users/42, e o grupo de captura (\d+) extrai só o 42. Grupos de captura são justamente como você *usa* o resultado de um regex no código.
Quantificadores gulosos vs preguiçosos
Guloso
<.+>
Preguiçoso
<.+?>
Texto
<b>hello</b>
A versão gulosa casa a string inteira <b>hello</b> porque .+ agarra o quanto consegue. A versão preguiçosa (+?) para no primeiro >, então casa só <b> e </b>.
Erros comuns com regex
Esquecer de escapar caracteres especiais: ., ?, +, (, ), [, ], {, }, \, ^, $, |. Quando você quer eles literalmente, coloca \ antes.
Escrever um padrão que funciona pra um exemplo, mas quebra com entrada real cheia de espaços extras, quebras de linha ou campos faltando.
Usar .* de forma gulosa e casar muito mais do que devia — troca por .*? ou por uma classe de caracteres mais específica.
Perguntas frequentes sobre regex
O que é regex?
Regex é abreviação de *regular expression* (expressão regular) — uma linguagem compacta de padrões pra casar texto. A mesma ideia existe em praticamente toda linguagem de programação e em vários editores e ferramentas de linha de comando.
Como eu escrevo um regex?
Comece com os caracteres literais que você quer casar e depois troque as partes variáveis por classes de caracteres (\d, \w, [abc]) e quantificadores (*, +, ?, {n,m}). Use um regex tester pra ir iterando até o padrão casar exatamente os casos que você quer.
O que significa \w em regex?
\w casa um caractere de palavra — uma letra, um dígito ou um underscore. \W é o oposto (qualquer não-palavra). O conjunto exato depende do motor e da flag Unicode.
Por que meu regex está casando demais?
Quantificadores são gulosos por padrão — .* casa o máximo possível. Troque por um quantificador preguiçoso (.*?) ou use uma classe de caracteres mais específica pra parar onde você quer.
Regex em JavaScript é igual aos outros?
O básico é igual, mas os motores variam. JavaScript, PCRE, re do Python, Java, Go e .NET cada um suporta um conjunto um pouco diferente de flags e recursos avançados (suporte a lookbehind, grupos nomeados, quantificadores possessivos).
Iniciantes deveriam aprender regex?
Devem sim — aos poucos. Comece com literais, classes de caracteres, quantificadores, âncoras, flags e grupos de captura. Lookarounds, grupos nomeados e regex condicional ficam pra depois.