Olá Flavio, tudo bem com você?
Peço desculpas pela demora em lhe responder.
Muito boa a sua dica de implementação do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura.
Uma outra formas que podemos buscar por e-mails que possuam ponto (.), traço (-) ou underscore (_) antes do arroba (@), podemos utilizar a seguinte expressão regular:
padrao = r"[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]?.[a-z]"
Onde temos, da esquerda para a direita:
- [a-z0-9._-] : Buscará por um conjunto de caracteres informados, antes do arroba (@), independente do tamanho.
- + (mais): Informa que deverá haver uma ou mais ocorrência do conjunto informado anteriormente.
- @[a-z0-9.-]:Buscará por um conjunto de caracteres informados, que deverá está após o arroba (@), independente do tamanho.
- \ .(contra barra ponto): Retira a propriedade especial do ponto (.).
- [a-z]: Buscará por um conjunto de letras após o ponto.
- ?.[a-z]: Buscará por um ponto e um conjunto de letras, podendo ou não ser informado.
Implementando em um código temos:
import re
padrao = r"[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]?.[a-z]"
email = "Aqui está o email: jorger.abello3@gmail.com.br, favor cadastrar"
resposta = re.search(padrao, email)
print(resposta.group())
Resultado
jorger.abello3@gmail.com.br
Para saber um pouco mais sobre expressões regulares e sobre outros modos de validação, recomendo a leitura do seguinte artigo:
O artigo acima está em inglês, caso tenha dificuldades com o idioma, recomendo o uso do tradutor do navegador.
Em caso de dúvidas, encontro-me à disposição.
Abraços e bons estudos.