Skip to content

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.

Papel

Cabe em uma página: A4, Carta.

Regex

Expressões regulares do JavaScript: sintaxe, flags e 15 padrões testados

JavaScript / ECMAScript 2025Revisado em 2026-09-27

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 u ou v (\p{N} números)
  • \u00e9Caractere pelo código (\u{1F600} com u)

Âncoras

  • ^Início do texto (de cada linha com m)
  • $Fim do texto (de cada linha com m)
  • \bLimite de palavra: entre \w e \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, $1 na 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: u com 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
Sabor: ECMAScript 2025. O Go (RE2) não tem lookarounds nem retrovisores.www.arielton.com/pt/cheatsheets/regex

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:

HTML
<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>
Markdown
[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.