用Python从电子邮件中提取域名(包括几个特例)

时间:2013-02-01 03:57:58

标签: python regex python-3.x

我正在尝试使用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”。

3 个答案:

答案 0 :(得分:5)

以下正则表达式与您的输入匹配:

.+@([^.]+)\..+

$1替换输入会给出域名。

注意:\

添加所需的转义功能

答案 1 :(得分:3)

这也可以。

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

答案 2 :(得分:0)

下面的代码可以帮助您完成所需的操作:

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