Aula 04 – Conjuntos de Caracteres 📦
E se você quiser encontrar uma vogal, mas não souber qual? Ou apenas letras minúsculas? É aqui que entram os Conjuntos de Caracteres.
🔡 O que são Conjuntos?
Um conjunto é definido entre colchetes []. Ele diz ao Regex: "Dê match em qualquer um dos caracteres que estão aqui dentro".
- Padrão:
[aeiou] - Texto: "bola" -> Encontra
o, depoisa.
📏 Usando Intervalos (Ranges)
Em vez de digitar todos os números ou letras, podemos usar o hífen - para definir um intervalo.
| Conjunto | Descrição |
|---|---|
[a-z] |
Qualquer letra minúscula de 'a' até 'z'. |
[A-Z] |
Qualquer letra maiúscula de 'A' até 'Z'. |
[0-9] |
Qualquer número de 0 a 9 (o mesmo que \d). |
[a-zA-Z] |
Qualquer letra, independente da caixa. |
Flexibilidade
Você pode combinar tudo: [a-f0-3] encontrará as letras de 'a' a 'f' e os números de 0 a 3.
📊 Visualização de Conjuntos
graph LR
Input["Texto: 'B3'"] --> Set["Conjunto: [A-Z][0-9]"]
Set --> Match["Match: 'B' e '3'"]
🚫 Negação ([^...])
Se você colocar um circunflexo ^ logo após o primeiro colchete, o conjunto se torna uma negação. Ele encontrará qualquer coisa que NÃO esteja na lista.
- Padrão:
[^0-9] - Significado: Qualquer caractere que NÃO seja um número.
Atenção
O ^ só tem poder de negação se for o primeiro caractere dentro dos colchetes. Se estiver fora, ele tem outra função (veremos na Aula 06).
💻 Exemplo em TermynalJS
📝 Exercícios de Fixação
- Básico: Crie um Regex que encontre apenas as letras 'x', 'y' ou 'z'.
- Básico: Use um intervalo para encontrar qualquer letra entre 'm' e 'q'.
- Intermediário: Crie um padrão que localize todas as consoantes minúsculas (Dica: Pense em negação de vogais ou lista completa).
- Intermediário: Como você buscaria um caractere que seja uma letra maiúscula ou um dígito?
- Desafio: No Regex101, tente criar um padrão que encontre um código de 3 caracteres onde o primeiro é uma letra maiúscula, o segundo é um número e o terceiro é uma letra minúscula.
🚀 Mini-Projeto: Filtro de Placas (Básico)
Objetivo: Identificar o início de uma placa de carro antiga (3 letras).
- Texto:
ABC-1234, xyz-9999, DEF-0000. - Crie um Regex que pegue apenas os conjuntos de 3 letras maiúsculas.
- Dica: Use
[A-Z][A-Z][A-Z].