Lição 2

Literais e metacaracteres

Classes de caracteres, quantificadores, âncoras e escape.

A maior parte da sintaxe de regex cai em dois grupos: literais (correspondem a si mesmos) e metacaracteres (símbolos especiais com significado).

Literais e escape

Letras e dígitos em geral correspondem a si mesmos: cat corresponde à substring cat.

Metacaracteres como . * + ? [ ] ( ) { } | ^ $ \ exigem cuidado:

  • . corresponde a qualquer um caractere (exceto terminadores de linha em alguns modos)
  • Para corresponder a um ponto literal, faça escape: \.

Na dúvida, use uma classe de caracteres para pontuação: [.] corresponde a um ponto sem debates sobre escape.

Classes de caracteres

[abc] corresponde a um caractere do conjunto a, b ou c.

Atalhos úteis (estilo JavaScript):

ClasseSignificado
\dDígito [0-9]
\wCaractere “de palavra” (depende do motor; muitas vezes [A-Za-z0-9_] )
\sEspaço em branco
\D, \W, \SVersões negadas

Intervalos: [a-z] para letras minúsculas. Coloque - no início ou no fim se precisar de hífen literal dentro da classe.

Quantificadores

Repetem o átomo anterior:

QuantificadorSignificado
*Zero ou mais
+Um ou mais
?Zero ou um
{3}Exatamente 3
{2,5}Entre 2 e 5
{2,}Dois ou mais

Guloso vs preguiçoso: + consome o máximo possível; +? consome o mínimo possível. Isso importa ao parsear campos delimitados.

Âncoras

ÂncoraSignificado (típico)
^Início da entrada ou da linha (com flag multiline)
$Fim da entrada ou da linha
\bLimite de palavra

^https:// garante que a URL começa no início (ou início de linha), não no meio de uma frase.

Agrupamento

( ... ) agrupa átomos para que quantificadores se apliquem ao grupo: (ab)+ corresponde a ab, abab, etc.

Conclusão

Construa padrões a partir de pequenas peças testadas: âncora + classe + quantificador. Padrões complexos ficam legíveis quando cada segmento tem um papel.

Voltar à visão geral do curso