Regex cheat sheet para imprimir
Este regex cheat sheet reúne a sintaxe de expressões regulares do JavaScript em uma página para imprimir: classes de caracteres, âncoras, quantificadores, grupos, lookarounds e as oito flags, mais 15 padrões práticos, cada um com textos que ele aceita e textos que ele recusa.
Cabe em uma página: A4, Carta.
Regex
Expressões regulares do JavaScript: sintaxe, flags e 15 padrões testados
Caracteres e classes
- .Qualquer caractere menos quebra de linha (todos com
s) - \d \DDígito 0-9 / qualquer outro
- \w \WCaractere de palavra
[A-Za-z0-9_]/ qualquer outro - \s \SEspaço, tab e quebra de linha / qualquer outro
- [abc]Um entre a, b ou c
- [^abc]Qualquer caractere menos a, b e c
- [a-z0-9]Faixas: a até z, ou 0 até 9
- \. \* \\Escapados: ponto, asterisco e barra invertida literais
- \t \n \rTab, quebra de linha, retorno de carro
- \p{L}Qualquer letra Unicode, com
uouv(\p{N}números) - \u00e9Caractere pelo código (
\u{1F600}comu)
Âncoras
- ^Início do texto (de cada linha com
m) - $Fim do texto (de cada linha com
m) - \bLimite de palavra: entre
\we\W - \BFora de um limite de palavra
Quantificadores
- *0 ou mais
- +1 ou mais
- ?0 ou 1: opcional
- {3}Exatamente 3
- {3,}3 ou mais
- {3,5}De 3 a 5
- *? +? ??Preguiçoso: o mínimo possível
- {3,5}?Faixa preguiçosa
Grupos e referências
- (abc)Grupo de captura,
$1na substituição - (?:abc)Grupo sem captura
- (?<y>\d{4})Grupo nomeado,
$<y>na substituição - \1Retrovisor: o mesmo texto do grupo 1
- \k<y>Retrovisor de um grupo nomeado
- a|ba ou b (menor precedência)
- $&Substituição: o trecho inteiro (
$$é um $ literal)
Lookarounds
- x(?=y)x se seguido de y
- x(?!y)x se não seguido de y
- (?<=y)xx se precedido de y
- (?<!y)xx se não precedido de y
Flags
- gGlobal: todos os trechos, não só o primeiro
- iIgnora maiúsculas e minúsculas
- mMultilinha:
^e$valem em cada linha - sdotAll:
.também pega quebra de linha - uUnicode: code points,
\p{…}, sintaxe estrita - vunicodeSets:
ucom operações de conjunto - ySticky: só casa na posição
lastIndex - dÍndices: início e fim de cada grupo
15 padrões práticos
- E-mail (verificação prática)/^[^\s@]+@[^\s@]+\.[^\s@]+$/Casa:
ana@example.com·first.last+tag@mail.example.co.ukNão casa:ana@example·ana @example.com - URL http ou https/^https?:\/\/[^\s/$.?#][^\s]*$/iCasa:
https://example.com/a?b=1·http://localhost:3000Não casa:ftp://example.com·https:// - Endereço IPv4/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/Casa:
192.168.0.1·255.255.255.255Não casa:256.1.1.1·192.168.1 - Data ISO 8601 (AAAA-MM-DD) (Só o formato: 2026-02-31 passa)/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/Casa:
2026-09-27·2024-02-29Não casa:2026-13-01·2026-9-27 - Hora de 24 horas (HH:MM)/^(?:[01]\d|2[0-3]):[0-5]\d$/Casa:
09:30·23:59Não casa:24:00·9:30 - Cor hex do CSS/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/iCasa:
#fff·#1E90FFNão casa:#fffff·#ggg - Slug de URL/^[a-z0-9]+(?:-[a-z0-9]+)*$/Casa:
my-post-2026·regexNão casa:My-Post·-post - Versão semântica (SemVer)/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z-]+(?:\.[\da-z-]+)*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?$/iCasa:
1.2.3·2.0.0-rc.1Não casa:1.2·01.2.3 - UUID (RFC 9562)/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iCasa:
550e8400-e29b-41d4-a716-446655440000·01890a5d-ac96-774b-bcce-b302099a8057Não casa:550e8400e29b41d4a716446655440000·550e8400-e29b-41d4-c716-446655440000 - Senha: 12+ caracteres, minúscula, maiúscula, dígito/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{12,}$/Casa:
Correct9horse·battery-Staple-42Não casa:correct9horse·Short1A - Telefone no formato E.164/^\+[1-9]\d{1,14}$/Casa:
+5542999998888·+14155552671Não casa:5542999998888·+0123456 - ZIP code dos EUA (ZIP+4 opcional)/^\d{5}(?:-\d{4})?$/Casa:
94105·94105-1420Não casa:9410·94105-14 - CEP/^\d{5}-?\d{3}$/Casa:
84010-000·84010000Não casa:84010-00·8401-0000 - Palavra repetida ("de de")/\b(\w+)\s+\1\b/iCasa:
see the the cat·It is is hereNão casa:see the cat·the theme - Separador de milhar
.replace(/\B(?=(\d{3})+(?!\d))/g, ',')1234567→1,234,567
O que tem no guia
A sintaxe é a do JavaScript no ECMAScript 2025, a que roda em navegadores, Node.js, Deno e Bun. Quase tudo vale também em PCRE, Java, .NET e Python; as exceções que importam são os grupos nomeados no Python, escritos (?P<nome>...), e o Go, cujo motor RE2 não tem lookarounds nem retrovisores.
Os 15 padrões são práticos de propósito, não perfeitos: o de e-mail recusa erros óbvios em vez de implementar a RFC 5322, e o de data confere o formato, não se fevereiro tem 31 dias. Cada um foi compilado com as flags mostradas e testado contra os exemplos impressos e mais casos extras.
Como imprimir em uma página
Escolha o papel acima do guia e clique em Imprimir / Salvar PDF. A página mede o guia na largura desse papel e ajusta a escala para ocupar uma folha, nunca abaixo de 7pt, e esconde o cabeçalho, o rodapé, os anúncios e os botões do site. A impressão sai sempre em preto no branco, seja qual for o tema da tela.
Na janela de impressão deixe a Escala em Padrão (100%) e as Margens em Padrão. Para gerar um PDF, escolha Salvar como PDF no destino. O Safari ignora o tamanho de papel que a página pede, então selecione o mesmo papel na janela dele.
Incorpore ou crie um link para este guia
Um link para esta página na sua documentação, wiki ou README é o melhor jeito de compartilhar: quem clicar sempre vê a versão atual e o botão de imprimir. Copie um destes:
<a href="https://www.arielton.com/pt/cheatsheets/regex">Regex cheat sheet para imprimir</a> por <a href="https://www.arielton.com/pt">Arielton Oberek</a>[Regex cheat sheet para imprimir](https://www.arielton.com/pt/cheatsheets/regex) por [Arielton Oberek](https://www.arielton.com/pt)Se a sua equipe quer o mesmo tratamento para uma API interna, uma CLI ou um guia de estilo, escreva para contact@arielton.com.
Perguntas frequentes
- Qual a diferença entre quantificador guloso e preguiçoso?
- Os gulosos (*, +, {n,m}) pegam o máximo de texto que conseguem e só devolvem se o resto do padrão falhar; os preguiçosos (*?, +?, {n,m}?) pegam o mínimo. Em <a><b>, <.+> casa com o texto inteiro e <.+?> casa só com <a>.
- Qual sabor de regex este guia usa?
- O do JavaScript (ECMAScript 2025), como em navegadores e no Node.js. Classes, quantificadores e lookarounds são iguais em PCRE, Java e .NET; o Python escreve grupos nomeados como (?P<nome>...), e o Go não aceita lookarounds nem retrovisores.
- Existe uma regex que valida qualquer e-mail?
- Não uma que seja prática. A gramática completa da RFC 5322 aceita aspas e comentários que nenhum formulário de cadastro quer. Use uma verificação simples como a do guia e confirme o endereço mandando uma mensagem para ele.
- O que muda com a flag g?
- Sem g, match() e replace() param no primeiro trecho encontrado. Com g, replace() troca todos e match() devolve todos; test() e exec() passam a lembrar o lastIndex entre chamadas, o que surpreende quem reaproveita o mesmo objeto regex.
Revisado em por Arielton Oberek.