Aula 11 – Regex com Python 🐍
Python é uma das linguagens mais poderosas para processamento de texto e dados. Para usar Regex, utilizamos a biblioteca padrão re.
📦 A Biblioteca re
Diferente do JavaScript, no Python os métodos de Regex fazem parte de um módulo que você precisa importar.
1. re.search(padrao, string)
Procura a primeira ocorrência do padrão. Retorna um objeto de "Match" ou None.
2. re.findall(padrao, string)
Retorna uma lista com todas as ocorrências encontradas.
3. re.sub(padrao, substituto, string)
Substitui as ocorrências por um novo texto (equivalente ao .replace do JS).
🏗️ O uso do r"" (Raw Strings)
Em Python, sempre use o prefixo r antes das aspas do seu Regex. Isso evita que o Python interprete as barras invertidas \ como comandos especiais dele mesmo.
- Correto:
re.search(r"\d", texto) - Errado:
re.search("\d", texto)(pode causar bugs!)
💻 Exemplo em TermynalJS (Python CLI)
$ # Rodando script rápido em Python
$ python -c "import re; print(re.findall(r'\w+', 'Regex é top'))"
$ ['Regex', 'é', 'top']
$
$ # Verificando se começa com letra
$ python -c "import re; print(bool(re.match(r'[a-zA-Z]', '123')))"
$ False
📝 Exercícios de Fixação
- Básico: Importe a biblioteca
ree verifique se a palavra "Python" existe na frase "Aprendendo Python com Regex". - Básico: Use
findall()para extrair todos os números de uma string:"Pedidos #102, #305 e #400". - Intermediário: Use
re.sub()para remover todos os parênteses de um número de telefone:(11) 9999-8888. - Intermediário: Crie um script que use
re.search()para encontrar a primeira data no formatoDD/MM/AAAA. - Desafio: Crie uma função em Python que receba uma lista de e-mails e retorne apenas os que terminam em
@empresa.com.
🚀 Mini-Projeto: Extrator de Links (Python)
Objetivo: Extrair todas as URLs de um bloco de texto.
- Código Sugerido:
- Desafio: Tente fazer o
findallretornar apenas o domínio (sem o http).