O módulo re fornece várias funções para trabalhar com expressões regulares. As mais comuns são:

Exemplos Práticos com re:

import re

texto = "Meu e-mail é [email protected] e o telefone é (11) 98765-4321."

# 1. re.search: Encontrar o primeiro e-mail
padrao_email = r'\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b'
match = re.search(padrao_email, texto)
if match:
    print(f"E-mail encontrado (search): {match.group(0)}") # .group(0) retorna a string completa que combinou
# Saída: E-mail encontrado (search): [email protected]

# 2. re.findall: Encontrar todos os números
padrao_numeros = r'\\d+' # Um ou mais dígitos
todos_numeros = re.findall(padrao_numeros, texto)
print(f"Todos os números encontrados (findall): {todos_numeros}")
# Saída: Todos os números encontrados (findall): ['11', '98765', '4321']

# 3. re.sub: Substituir números de telefone por [TELEFONE OCULTO]
# Padrão para telefone: (XX) XXXXX-XXXX
padrao_telefone = r'\\(\\d{2}\\) \\d{5}-\\d{4}'
texto_modificado = re.sub(padrao_telefone, '[TELEFONE OCULTO]', texto)
print(f"Texto com telefone oculto (sub): {texto_modificado}")
# Saída: Texto com telefone oculto (sub): Meu e-mail é [email protected] e o telefone é [TELEFONE OCULTO].

# 4. re.compile: Compilar um padrão para uso repetido
padrao_compilado = re.compile(r'Python')
texto2 = "Aprender Python é legal. Python é versátil."
matches_compilado = padrao_compilado.findall(texto2)
print(f"Matches com padrão compilado: {matches_compilado}")
# Saída: Matches com padrão compilado: ['Python', 'Python']

Nota sobre r'' (Raw String): É uma boa prática usar r'' (string bruta ou raw string) para definir padrões de regex em Python. Isso impede que as barras invertidas (\\) sejam interpretadas como caracteres de escape da string Python normal, o que é crucial, pois as regex usam muitas barras invertidas para sequências especiais (\\d, \\s, etc.).