Aula 03 – Metacaracteres Fundamentais 🔣
Bem-vindo ao coração do Regex! Metacaracteres são símbolos especiais que não representam a si mesmos, mas sim conceitos como "qualquer número" ou "qualquer letra".
⏺️ O Ponto (.) - O Coringa
O ponto é o metacaractere mais versátil. Ele dá match em qualquer caractere único, exceto quebras de linha.
- Padrão:
c.sa - Match:
casa,cosa,c1sa,c#sa.
Conceito
O . é como uma peça de Lego que se encaixa em qualquer buraco de um único caractere.
🔢 Atalhos de Classes (\d, \w, \s)
Existem atalhos para grupos comuns que facilitam muito a nossa vida:
| Metacaractere | O que significa | Exemplo |
|---|---|---|
\d |
Digit (Qualquer número de 0 a 9) | 9, 5 |
\w |
Word (Letras, números e underline _) |
a, B, 7, _ |
\s |
Space (Espaços, tabs e quebras de linha) | , \t |
Dica
Se você usar a letra maiúscula (\D, \W, \S), você está fazendo a negação. Por exemplo, \D significa "qualquer coisa que NÃO seja um número".
📊 Tabela de Correspondências
graph TD
Text["Texto: A1 _"] --> D["\d"]
Text --> W["\w"]
Text --> S["\s"]
D --> MatchD["Matches: 1"]
W --> MatchW["Matches: A, 1, _"]
S --> MatchS["Matches: ' ' (espaço)"]
🛡️ O Caractere de Escape (\)
E se você quiser procurar por um ponto real (como em um endereço de IP)? Como o . é um metacaractere, você precisa "desativar" o poder dele usando a barra invertida \.
- Padrão:
google.com(Errado: o ponto encontrará qualquer coisa) - Padrão:
google\.com(Certo: encontra exatamente o ponto final)
💻 Exemplo em TermynalJS
📝 Exercícios de Fixação
- Básico: Crie um Regex para encontrar datas no formato
00/00usando\d. - Básico: Use o
.para encontrar as palavrascola,celaecilacom um único padrão. - Intermediário: Como você buscaria um nome de usuário que tem 3 letras seguidas de um underline? (Ex:
abc_). - Intermediário: Tente dar match em um valor monetário simples como
$ 5usando\$ \s \d. - Desafio: No Regex101, tente encontrar todas as palavras em um texto que possuam exatamente 4 letras usando
\w\w\w\w.
🚀 Mini-Projeto: Extrator de Versões
Objetivo: Identificar versões de software em um texto.
- Texto:
A versão estável é v1.4, mas testamos a v1.a e a v2.0. - Crie um Regex que capture apenas as versões válidas (v + número + ponto + número).
- Dica: Use
v\d\.\d.