Objetivo: Criar funções que utilizem Expressões Regulares para extrair padrões específicos de texto (como números de telefone, datas, etc.) de strings mais longas.
1. Extração de Números de Telefone
Criar uma função que encontre e retorne todos os números de telefone em um texto, aceitando diferentes formatos comuns.
exercicios_regex.py
.extrair_numeros_telefone
que aceite um argumento: texto
(string).(DD) XXXX-XXXX
(ex: (11) 1234-5678
)(DD) XXXXX-XXXX
(ex: (11) 91234-5678
)DD XXXX-XXXX
(ex: 11 1234-5678
) - sem parênteses, com espaçoDD XXXXX-XXXX
(ex: 11 91234-5678
) - sem parênteses, com espaçoDDXXXXXXXXX
(ex: 11912345678
) - sem espaços ou hífens (apenas dígitos)\\d
para dígitos.{n}
para quantidades exatas (ex: {2}
para 2 dígitos).{n,m}
para quantidades mínimas e máximas (ex: {4,5}
para 4 ou 5 dígitos).?
para tornar um caractere ou grupo opcional (ex: (grupo)?
).\\s
para espaços em branco e para zero ou mais ocorrências.|
(pipe) é útil para combinar diferentes padrões (OU lógico).re.findall()
para encontrar todas as ocorrências.extrair_numeros_telefone
deve retornar uma lista de strings, onde cada string é um número de telefone encontrado. Se nenhum for encontrado, deve retornar uma lista vazia.2. Adicionar Testes Unitários para Extração de Telefones
test_exercicios_regex.py
.extrair_numeros_telefone
no início do arquivo de testes.TestValidarEmail
(ou crie uma nova TestExtrairInformacoes
se achar que faz mais sentido para organizar, mas por agora podemos manter na mesma), escreva pelo menos 3 métodos de teste (test_...
) para extrair_numeros_telefone
:
12345
que não é um telefone completo).self.assertEqual(lista_resultante, lista_esperada)
.3. Adicionar Demonstração
if __name__ == "__main__":
do arquivo exercicios_regex.py
, adicione chamadas à função extrair_numeros_telefone
com textos de exemplo e imprima os resultados.Revisão Final e Boas Práticas:
extrair_numeros_telefone
e para cada método de teste, explicando seu propósito, argumentos, retorno e detalhes importantes.black
e isort
para formatar seus arquivos (black .
e isort .
na pasta do exercício, com a venv ativada).