在Python中从电子邮件中提取域名(包括几种特殊情况)



我正在尝试使用Python从电子邮件字符串中提取域名。对于 abc@xyz.com 等基本情况,以下方法效果很好:

string.split("@")[1].rstrip(".com")   #would give me "xyz"

但我希望找到一种解决方案,可以在以下情况下获得域名:

  • abc@alumni.xyz.com
  • abc@xyz.org
  • abc@xyz.co.in
  • abc@xyz.it

我想到的一个解决方案是使用正则表达式并去除最后一个点之后的任何内容,但仍然留下特殊域,例如"xyz.co.sy",其中我希望只得到"xyz"。

这也行得通。

str.split("@")[1].split(".")[0]

下面的代码应该可以帮助您执行所需的操作:

fromAddr = message.get('From').split('@')[1].rstrip('>')
        fromAddr = fromAddr.split(' ')[0]

最新更新