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 flagspara 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)\bfronteira de palavra (entre um caractere de palavra\we um que não é\w)\ddígito, equivalente a[0-9]\Dnão dígito\wcaractere de palavra, equivalente a[A-Za-z0-9_]\Wcaractere que não é de palavra\sespaço em branco (espaço, Tab, quebra de linha)\Snã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
- 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 - URL
https?:\/\/[^\s]+— casa do início http/https até o primeiro espaço em branco - 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 - Data ISO
\d{4}-\d{2}-\d{2}— formato como 2026-06-28 - 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.