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

问题描述

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

示例用法:

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

所以我理解 find(subtr, start, end)。我知道它应该如何工作,但只有一种情况。但是,这要求在 @ 和 .

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

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

标签: python

解决方案


find() 方法查找特定字符串等。您要查找的是 @ 之后和 .com 之前的单词,因此您可以使用正则表达式。然而,还有另一种令人讨厌的方法使用 split 来做到这一点

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

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

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

import re
def extract_company(email):
    x= re.findall(r"\@(.*?)\.", "uditvashisht@gmail.com")
    return x[0]

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


推荐阅读