FNSP Web Page

Regex: cinco construções que resolvem quase tudo

As expressões regulares têm fama de ilegíveis, e a culpa é de quem as usa para o que não devem. Com meia dúzia de construções resolve-se a esmagadora maioria dos casos do dia-a-dia.

1. Classes: que caracteres

/[aeiou]/     // um destes
/[^aeiou]/    // qualquer um menos estes
/[a-z0-9]/    // intervalos
/\d/          // dígito       (o mesmo que [0-9])
/\w/          // letra, dígito ou _
/\s/          // espaço, tabulação, quebra de linha
/./           // qualquer coisa menos quebra de linha

2. Quantificadores: quantas vezes

/a?/       // zero ou uma
/a*/       // zero ou mais
/a+/       // uma ou mais
/a{2,4}/   // entre duas e quatro

3. Âncoras: onde

/^Olá/     // no princípio
/adeus$/   // no fim
/\bpor\b/  // palavra inteira: apanha "por" e não "porta"

O \b é o que falta em metade das expressões que "apanham a mais".

4. Grupos: capturar pedaços

const data = '2026-03-13';

const [, ano, mes, dia] = data.match(/(\d{4})-(\d{2})-(\d{2})/);

// Com nomes, que se lê daqui a seis meses
const { ano: a, mes: m } = data.match(/(?<ano>\d{4})-(?<mes>\d{2})/).groups;

5. Guloso ou preguiçoso

É a diferença que apanha toda a gente:

const html = '<b>um</b> e <b>dois</b>';

html.match(/<b>.*<\/b>/)[0];   // '<b>um</b> e <b>dois</b>' — apanhou tudo
html.match(/<b>.*?<\/b>/)[0];  // '<b>um</b>' — parou no primeiro

O * estica o mais possível; o *? para assim que puder.

E as três regras de bom senso

  • Não valide emails com regex. A expressão correta pela norma tem centenas de caracteres e continua a aceitar endereços que não existem. Verifique que tem um @ com coisas dos dois lados, e depois envie um email — é a única validação que prova alguma coisa.

  • Não analise HTML com regex. Etiquetas dentro de etiquetas, atributos com > lá dentro, comentários. Use um analisador.

  • Comente as compridas. A expressão que hoje se percebe é a que daqui a um ano ninguém se atreve a tocar.

Comentários

Ainda ninguém comentou este artigo.

Voltar ao blog

Gostávamos de saber quantas pessoas visitam o site, com o Google Analytics. Sem a sua autorização não corre nada. Política de Privacidade.