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):
| Classe | Significado |
|---|---|
\d | Dígito [0-9] |
\w | Caractere “de palavra” (depende do motor; muitas vezes [A-Za-z0-9_] ) |
\s | Espaço em branco |
\D, \W, \S | Versõ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:
| Quantificador | Significado |
|---|---|
* | 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
| Âncora | Significado (típico) |
|---|---|
^ | Início da entrada ou da linha (com flag multiline) |
$ | Fim da entrada ou da linha |
\b | Limite 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.