Esqueceu o que \b significa no meio de uma regex? Ou escreveu uma que parece correta, mas não casa nada quando roda? Este guia traz um cheat sheet prático — organizado em 4 seções: metacaracteres, quantificadores, grupos e exemplos reais, cada um com explicação em linguagem simples. Use com o testador de regex do Piick para consultar e testar ao longo do caminho.

Cheat sheet de metacaracteres

Todos os símbolos especiais em regex que não são caracteres literais são chamados de metacaracteres. Os 12 mais comuns:

  • . qualquer caractere único (não casa quebras de linha por padrão; precisa da flag s para casá-las)
  • ^ início da linha (casa o início de cada linha em modo multilinha)
  • $ fim da linha (casa o fim de cada linha em modo multilinha)
  • \b fronteira de palavra (entre um caractere de palavra \w e um que não é \w)
  • \d dígito, equivalente a [0-9]
  • \D não dígito
  • \w caractere de palavra, equivalente a [A-Za-z0-9_]
  • \W caractere que não é de palavra
  • \s espaço em branco (espaço, Tab, quebra de linha)
  • \S não espaço em branco
  • [abc] classe de caracteres, casa qualquer um entre a/b/c
  • [^abc] classe negada, casa caracteres que não sejam a/b/c

Truque para memorizar: d é dígito, w é word, s é space — maiúscula significa “não”.

Quantificadores: gulosos vs preguiçosos

Os quantificadores controlam quantas vezes o elemento anterior aparece:

  • * zero ou mais vezes
  • + uma ou mais vezes
  • ? zero ou uma vez
  • {n} exatamente n vezes
  • {n,} pelo menos n vezes
  • {n,m} entre n e m vezes

Armadilha principal: gulosos por padrão — comem o máximo possível. Por exemplo, ".*" casando "a" e "b" retorna a string inteira "a" e "b", não dois trechos. Adicione ? para torná-lo preguiçoso: ".*?" pegará "a" e "b" separadamente.

Ao depurar regex, se você desconfiar que o match está guloso demais, o primeiro movimento é adicionar ?.

Agrupamento e captura

Os parênteses () servem para agrupar e têm 3 usos:

  • Grupo de captura: armazena o conteúdo casado, referenciável depois com \1
  • Grupo sem captura (?:...): agrupa sem capturar, economiza memória
  • Grupo de captura nomeado (?<name>...): referência por nome, o código fica mais legível

Um exemplo real: casar uma tag HTML <a href="...">, você quer tanto o nome da tag quanto os atributos. Use <\/?([a-z]+)([^>]*)> — o primeiro parêntese captura o nome da tag, o segundo captura os atributos. A versão com captura nomeada é <\/?(?<tag>[a-z]+)(?<attrs>[^>]*)>, bem mais legível.

Agrupamento em regex é mais complexo do que parece — o painel Explain no testador de regex do Piick detalha o que cada parêntese faz, para você não precisar adivinhar.

5 exemplos reais de regex

  1. E-mail [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,} — valida formatos comuns; o RFC 5322 estrito é longo demais, então na prática usa-se a versão simplificada
  2. URL https?:\/\/[^\s]+ — casa do início http/https até o primeiro espaço em branco
  3. IPv4 \b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b — 4 segmentos de 0-255; a validação completa precisa de comparações numéricas segmento a segmento
  4. Data ISO \d{4}-\d{2}-\d{2} — formato como 2026-06-28
  5. Slug de URL [a-z0-9]+(?:-[a-z0-9]+)* — letras minúsculas/dígitos com hífens, o formato comum de URL de posts

Não escreva regex complexa de cabeça — cole no testador de regex do Piick. Escreva na esquerda, os matches destacam em tempo real na direita, mude uma linha e veja o efeito na hora. Isso é 10x mais rápido do que recarregar a página sem parar.


Abra agora o testador de regex do Piick, cole um texto e tente uma regex que você nunca rodou antes.