Skip to content
Folha de consulta de Regex
Tools

Folha de consulta de Regex

Novo

Referência pesquisável de tokens e flags de expressões regulares.

Live regex tester

Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.

/ /
Flags
Matches
Capture groups

Common regex patterns

Battle-tested patterns — load one into the tester to see it run, or copy it straight out.

Email address
[\w.+-]+@[\w-]+\.[\w.-]+
URL (http/https)
https?:\/\/[^\s]+
US phone number
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Date (YYYY-MM-DD)
(\d{4})-(\d{2})-(\d{2})
Time (24-hour)
([01]?\d|2[0-3]):[0-5]\d
IPv4 address
\b(?:\d{1,3}\.){3}\d{1,3}\b
Hex color
#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Slug / username
[a-z0-9]+(?:-[a-z0-9]+)*
Whole number / integer
-?\d+
Strong password (8+, mixed)
(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}
Duplicate word
\b(\w+)\s+\1\b
Trailing whitespace
[ \t]+$

Regex cheat sheet

Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.

Regex flavors: JavaScript, Python, Java, PCRE & grep

The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.

FeatureJavaScriptPython (re)JavaPCRE / grep
Named group(?<name>…)(?P<name>…)(?<name>…)(?P<name>…)
Dotall (. matches \n)s flagre.DOTALL / (?s)Pattern.DOTALL(?s)
Ignore casei flagre.IGNORECASE / (?i)(?i) flag(?i) / grep -i
Lookbehind(?<=…) ES2018+SupportedSupportedgrep -P only
Backslash in source/\d/ literalr"\d" raw string"\\d" doubled\d
Find every matchstr.matchAll(/…/g)re.findall()Matcher.find()grep -o
POSIX class [[:digit:]]use \d insteaduse \d insteadsupportedsupported

Runs entirely in your browser. Nothing is uploaded.

Guia de regex com exemplos — e um testador ao vivo

Este guia de regex coloca cada token de expressão regular a uma busca de distância — e vem acompanhado de um testador ao vivo para você experimentar o padrão na hora em que precisar. Digite um padrão, escolha as flags, cole um texto de teste e os resultados aparecem instantaneamente com cada grupo de captura listado abaixo.

Não há nada para instalar e nenhuma conta para criar: toda a referência de expressões regulares roda no seu navegador, então o texto que você testa nunca é enviado a nenhum servidor. Sem anúncios, sem tela de login, sem limite de tamanho no texto de teste.

Todos os tokens de regex, agrupados com exemplos

A referência cobre a sintaxe que você realmente usa: classes de caracteres (\d, \w, \s e conjuntos personalizados como [a-z]), âncoras e limites (^, $, \b), quantificadores (*, +, ?, {n,m} e suas versões lazy), grupos e alternância, lookahead e lookbehind, as flags g i m s u y, além dos escapes necessários para pontos e barras literais.

Cada entrada tem um exemplo curto e concreto — \bcat\b encontra a palavra 'cat' mas não 'category' — para que o significado fique fácil de memorizar. Pesquise os tokens de regex por símbolo ou palavra-chave e clique em qualquer um para copiar.

Teste seu padrão enquanto o constrói

Guias estáticos não conseguem dizer se o seu padrão realmente funciona. O testador de regex integrado compila a sua expressão em tempo real, destaca todas as correspondências no texto de exemplo e lista os grupos de captura numerados e nomeados de cada uma.

Ative as flags global, case-insensitive, multiline, dotall, Unicode e sticky e veja os resultados mudarem. Se um padrão for inválido você recebe uma mensagem de erro clara em vez de uma falha silenciosa — e ver o padrão funcionar em tempo real é a forma mais rápida de aprender regex.

Padrões regex prontos para copiar

Alguns padrões aparecem o tempo todo — endereços de e-mail, URLs, números de telefone, datas ISO, endereços IPv4, cores hexadecimais e verificações de senha forte. A seção de padrões comuns traz uma versão validada de cada um: carregue direto no testador para ver em ação com texto de exemplo, ou copie para o seu código.

São pontos de partida práticos para você adaptar, e não regras universais — exatamente por isso testá-los com seus próprios dados é tão importante.

Como este guia se compara ao regex101.com e regexr.com

O regex101.com é a ferramenta de regex dedicada mais popular da web — e por boas razões. Ele suporta seis flavors de regex (PCRE, Python re, Golang, Java, .NET e JavaScript), exibe um painel de explicação token a token e registra o histórico de correspondências. Se você está depurando um padrão complexo em produção ou precisa verificar que um padrão se comporta da mesma forma em PHP e Python, o regex101 é a ferramenta certa. O regexr.com oferece uma experiência parecida com uma biblioteca pública de padrões da comunidade.

Esta página do UtiloKit ocupa um ponto diferente no fluxo de trabalho. Ela combina uma tabela de referência de tokens que você pode pesquisar com um testador ao vivo na mesma tela, otimizada para a situação comum em que você sabe mais ou menos o que precisa mas não lembra a sintaxe exata. Você abre, consulta o token, cola um texto de teste rápido e volta ao editor — sem trocar de aba, sem conta, sem anúncios. Para quem acessa o regex101 dezenas de vezes por dia só para lembrar se o lookbehind usa (?<=…) ou (?<!…), ter uma referência pesquisável dedicada é visivelmente mais rápido. Use os dois: o regex101 para depuração avançada, esta página para consultas rápidas.

Flavors de regex: JavaScript, Python, Java, PCRE e grep

A maior parte da sintaxe de regex é portável, mas os motores diferem nos detalhes. O testador aqui usa regex JavaScript, o mesmo flavor do Node.js e do navegador. O módulo re do Python prefere raw strings como r"\d+" e nomeia grupos com (?P<nome>…); o Java exige barras invertidas dobradas em string literals; o PCRE (PHP e grep -P) é o mais completo em recursos; e o grep -E POSIX tem suas próprias peculiaridades de escape.

A tabela de flavors destaca grupos nomeados, dotall, case-insensitivity, lookbehind e 'find all' em cada motor, para que você possa migrar um padrão de regex Python para JavaScript — ou vice-versa — sem surpresas.

Greedy vs lazy, e outras armadilhas comuns

Dois problemas derrubam quase todo mundo. Primeiro, os quantificadores são greedy (gananciosos): .+ captura o máximo possível, então para encontrar uma única tag HTML você geralmente quer o lazy .+?. Segundo, esquecer de escapar os metacaracteres — um . simples corresponde a qualquer caractere, enquanto \. corresponde a um ponto literal, então um regex de preço precisa ser \d+\.\d{2}.

Mantenha este guia aberto enquanto trabalha e essas armadilhas deixam de ser surpresa.

Privado, instantâneo e grátis

Não há nada para instalar e nenhuma conta para criar. Cada consulta, cada correspondência e cada cópia acontece localmente no seu navegador — seus padrões e dados de teste nunca saem do seu dispositivo. Salve este guia de regex nos favoritos e acesse sempre que precisar lembrar um token ou verificar rapidamente um padrão.

Frequently asked questions

O que é uma expressão regular com exemplo?

Uma expressão regular (regex) é um padrão compacto que descreve um conjunto de strings, usado para buscar, combinar e substituir texto. Por exemplo, o padrão \d{3}-\d{4} encontra um fragmento de telefone como 555-1234, porque \d significa 'um dígito' e {3} significa 'exatamente três deles'. O regex é usado em busca e substituição, validação de formulários e análise de logs em praticamente todas as linguagens de programação e editores de código. O testador ao vivo no topo desta página permite experimentar qualquer padrão na hora.

Quais são os tokens básicos de regex?

Os elementos fundamentais são: . (qualquer caractere exceto nova linha), \d (um dígito), \w (um caractere de palavra — letra, dígito ou underscore), \s (espaço em branco), as âncoras ^ (início) e $ (fim), e os quantificadores * (zero ou mais), + (um ou mais) e ? (opcional). Então \w+ corresponde a uma palavra inteira e \d+ corresponde a um número completo como 2024. Combine-os — ^\d+$ encontra uma linha composta apenas de dígitos. Cada token neste guia inclui um exemplo que você pode copiar.

O que significam \d, \w e \s no regex?

\d encontra qualquer dígito de 0 a 9; \w encontra um caractere de palavra (a–z, A–Z, 0–9 ou _); \s encontra espaço em branco (espaço, tabulação ou nova linha). Suas versões maiúsculas são as negações: \D é um não-dígito, \W é um não-caractere de palavra e \S é um não-espaço. Por exemplo, no texto 'a5 b', \d encontra 5, \w encontra a, 5 e b, e \s encontra o espaço entre eles. Essas três classes abreviam cobrem a grande maioria dos padrões de regex do dia a dia.

O que são âncoras no regex?

Âncoras correspondem a uma posição, não a um caractere. ^ encontra o início da string (ou de cada linha com a flag m), $ encontra o fim, \b encontra um limite de palavra e \B encontra uma não-fronteira. Por exemplo, ^\d+$ encontra uma string formada apenas de dígitos, e \bcat\b encontra a palavra 'cat' mas não o 'cat' dentro de 'category'. As âncoras são frequentemente confundidas com correspondências de caractere — elas correspondem a posições no texto, não a caracteres específicos.

O que são quantificadores no regex?

Quantificadores dizem quantas vezes o token anterior pode se repetir: * é zero ou mais, + é um ou mais, ? é zero ou um (opcional), {n} é exatamente n, {n,} é n ou mais, e {n,m} é entre n e m. Por padrão são gananciosos (correspondem ao máximo possível); adicione um ? para torná-los lazy. Por exemplo, \d{1,3} encontra de 1 a 3 dígitos, e o lazy .+? corresponde ao mínimo possível. Quantificadores lazy são essenciais para encontrar tags HTML ou strings entre aspas.

O que são grupos e grupos de captura no regex?

Parênteses (…) criam um grupo de captura que você pode extrair ou reutilizar — (\d{4})-(\d{2}) captura o ano no grupo 1 e o mês no grupo 2 de '2024-06'. Use (?:…) para um grupo sem captura quando só precisar agrupar para um quantificador, e (?<nome>…) para um grupo nomeado como (?<ano>\d{4}). Uma referência retroativa como \1 re-encontra o que o grupo 1 capturou, então (\w)\1 encontra uma letra dobrada — o 'll' em 'hello'.

O que é lookahead e lookbehind no regex?

Lookarounds verificam se um texto está (ou não está) ao lado da sua correspondência sem consumi-lo. (?=…) é um lookahead positivo, (?!…) um lookahead negativo, (?<=…) um lookbehind positivo e (?<!…) um lookbehind negativo. Por exemplo, \d+(?=px) encontra o 5 em '5px' mas deixa o 'px' de fora, e (?<=R\$)\d+ encontra o 9 em 'R$9' exigindo um sinal de real antes. Lookarounds são um dos recursos que diferenciam os motores de regex modernos do grep POSIX.

O que são flags no regex?

Flags mudam como o padrão inteiro é aplicado: g (global) encontra todas as correspondências, i torna a busca case-insensitive, m (multiline) faz ^ e $ corresponderem a cada linha, s (dotall) permite que . encontre novas linhas, u ativa o Unicode completo e y (sticky) ancora a busca em uma posição fixa. Em JavaScript você as adiciona depois da barra de fechamento, então /cat/gi encontra 'Cat' e 'CAT' em todo o texto. O testador desta página tem botões de alternância para cada flag para que você veja o efeito ao vivo.

Como criar um regex para e-mail, telefone ou URL?

Padrões práticos de partida: e-mail — [\w.+-]+@[\w-]+\.[\w.-]+ ; URL — https?:\/\/[^\s]+ ; telefone brasileiro — \(?\d{2}\)?[-.\s]?\d{4,5}[-.\s]?\d{4}, que corresponde a (11) 98765-4321 e 11 3456-7890. São padrões pragmáticos, não exaustivos — o padrão oficial de e-mail é muito mais complexo — então sempre os teste com seus dados reais usando o testador ao vivo acima, onde cada um é um clique na lista de padrões comuns.

Como escapar caracteres especiais no regex?

Coloque uma barra invertida antes de qualquer metacaractere para encontrá-lo literalmente. Os caracteres que geralmente precisam de escape são . ^ $ * + ? ( ) [ ] { } | \ e /. Por exemplo, \. encontra um ponto literal e \$ encontra um cifrão, então \d+\.\d{2} encontra um preço como 19,99. Dentro de uma classe de caracteres a maioria perde seu significado especial, então [.] também encontra um ponto literal sem escapar.

O regex é diferente em JavaScript, Python e Java?

A sintaxe central é compartilhada, mas os detalhes diferem. O JavaScript nomeia grupos com (?<nome>…) enquanto o Python usa (?P<nome>…); o Python usa raw strings como r"\d+" e o Java exige barras invertidas dobradas em string literals ("\\d+"). O dotall é a flag s no JS, re.DOTALL no Python e Pattern.DOTALL no Java. A tabela de flavors desta página resume as diferenças para Python, Java, PCRE e grep para que você possa migrar um padrão entre linguagens com confiança.

O que é expressão regular em Python?

Em Python, as expressões regulares estão no módulo built-in re. Você geralmente escreve o padrão como uma raw string e chama funções como re.search, re.findall ou re.sub — por exemplo re.findall(r"\d+", "a1 b22") retorna ['1', '22']. Grupos nomeados usam (?P<nome>…) e você os lê com match.group('nome'). A referência de tokens desta página se aplica diretamente ao regex Python; apenas a API ao redor e alguns nomes de flags diferem do JavaScript.

Como testar um regex?

Use o testador ao vivo no topo desta página: digite seu padrão entre as barras, ative as flags que precisar e cole um texto de teste. As correspondências são destacadas em tempo real, cada grupo de captura numerado e nomeado é listado abaixo, e um padrão inválido mostra uma mensagem de erro clara em vez de falhar silenciosamente — tudo rodando localmente no seu navegador, então nada do que você cola é enviado a nenhum servidor. Ferramentas como regex101.com e regexr.com funcionam de forma parecida; esta combina a referência e o testador em uma só página.

Como este guia se compara ao regex101.com e regexr.com?

O regex101.com é o padrão da indústria para depuração avançada de regex — suporta vários flavors (PCRE, Python, Java, .NET, Golang) e fornece uma explicação detalhada de cada token do seu padrão. O regexr.com oferece uma experiência parecida com uma biblioteca comunitária de padrões. Ambos são ferramentas dedicadas excelentes. Este guia do UtiloKit é diferente: combina uma tabela de referência de tokens com um testador ao vivo básico na mesma página, para que você possa consultar algo e verificar em segundos sem trocar de aba. Para trabalho avançado de regex em produção, o comparador de flavors e o depurador detalhado do regex101.com são difíceis de superar; para consultas rápidas durante o desenvolvimento, esta página de referência carrega mais rápido e não exige nenhuma navegação.

Por que se chama expressão regular?

O nome vem da teoria formal das linguagens. Na década de 1950, o matemático Stephen Kleene descreveu os 'conjuntos regulares' — linguagens que uma máquina de estados finita simples consegue reconhecer — e a notação que ele usou para eles ficou conhecida como expressão regular. Os motores de regex modernos adicionam recursos como referências retroativas e lookarounds que vão além das linguagens estritamente 'regulares', mas o nome histórico permaneceu.