Aula 02 – Estrutura Básica de uma Expressão Regular 🏗️
Nesta aula, vamos mergulhar na fundação do Regex: a busca por textos fixos e como as máquinas interpretam as letras.
🔡 Texto Literal
A forma mais simples de Regex é o texto literal. Se você digitar gato no seu buscador Regex, ele encontrará exatamente a sequência de letras "g", "a", "t", "o", nessa ordem.
Atenção
O Regex procura por padrões exatos. Se você buscar por gato, as palavras Gato ou GATO não serão encontradas por padrão, pois a busca é sensível a maiúsculas e minúsculas.
🔠 Sensibilidade (Case Sensitivity)
Por padrão, a maioria dos motores de Regex diferencia A de a.
- Padrão:
casa - Texto: "A casa é verde." ✅ (Match)
- Texto: "Minha Casa, minha vida." ❌ (No Match)
Dica
Para ignorar essa diferença, usamos a flag i (Ignore Case). Com ela, casa encontraria CASA, cAsA, etc.
📊 Diagrama de Fluxo de Busca Literal
graph TD
Start((Início)) --> CheckG{Letra 'g'?}
CheckG -- Sim --> CheckA{Letra 'a'?}
CheckG -- Não --> Next["Próximo caractere"]
CheckA -- Sim --> CheckT{Letra 't'?}
CheckA -- Não --> Next
CheckT -- Sim --> CheckO{Letra 'o'?}
CheckT -- Não --> Next
CheckO -- Sim --> Match((MATCH!))
CheckO -- Não --> Next
Next --> CheckG
💻 Primeiros Testes Práticos em Terminal
Podemos usar o Regex até no seu computador para filtrar arquivos ou textos.
📝 Exercícios de Fixação
- Básico: Crie uma expressão para encontrar a palavra "Python" em um parágrafo. Funciona se o texto estiver escrito "python"?
- Básico: No Regex101, use o texto "O rato roeu a roupa do rei". Tente dar match na palavra "rato".
- Intermediário: Tente encontrar a palavra "programação" (com acento). O Regex literal exige o acento?
- Intermediário: Como você buscaria o número "123" usando texto literal?
- Desafio: No Regex101, experimente ativar e desativar a flag
ino canto superior direito e observe o que muda ao buscar por seu próprio nome.
🚀 Mini-Projeto: Localizador de Erros
Objetivo: Encontrar mensagens de erro em um log simulado.
- Cole o seguinte texto no Regex101:
- Crie um Regex literal para encontrar apenas
SYSTEM_ERROR. - Agora, use a flag
ipara encontrar as duas ocorrências de erro (tanto maiúscula quanto minúscula).