如何使用python中的find()方法从电子邮件中提取公司名称?

时间:2019-05-06 05:05:10

标签: python

我对Python还是很陌生。我正在分配工作,但我仍然不了解提取电子邮件时的find()方法如何工作。该函数的目的是使用find()方法提取电子邮件的公司(即@符号之后但。之前的所有内容)。

示例用法:

extract_company(“ larhe@uber.com”)应该返回“ uber”

所以我知道find(subtr,start,end)。而且我知道它应该如何工作,但是只有一种情况。但是,这要求在@和之间找到公司名称。

这是我到目前为止一直在使用的代码,但它仍然会给我断言错误

def extract_company(email):
    return email.find('@' and '.') 

3 个答案:

答案 0 :(得分:2)

find()方法查找特定的字符串等。您要查找的是@之后的.com之前的单词,因此您可以使用正则表达式。但是还有另一种使用split的怪异方法

INSERT

此代码将执行的操作是将电子邮件地址拆分为“ @”,然后取最后一个项目并将其拆分为“。”。然后选择第一个列表项,即您的公司名称。

如果您打算使用正则表达式。然后代码将是:-

def extract_company(email):
    return email.split('@')[-1].split('.')[0]

它的作用是查找“ @”和“。”之间的所有字符。然后返回该字符的列表。列表中的元素就是公司名称。

答案 1 :(得分:1)

def extract_company(email):
    index_of_at = email.find('@')

    return email[index_of_at+1:email.rfind('.')]

假设您需要使用基本的Python,这是一种方法。

  1. 将索引存储在找到第一个“ @”的位置。
  2. 对字符串进行切片,以便您从字母 后的'@'(即index_of_at + 1)和最后一个'。'(即email.rfind('.'))开始。

答案 2 :(得分:0)

您可以使用内置的re库从电子邮件中提取公司名称。

示例:

import re
email = "lahre@uber.com"
print(re.findall(r'\w+[.]', email)[0][:-1])

输出:

uber