python - 如何使用 python 中的 find() 方法从电子邮件中提取公司名称?
问题描述
我对 Python 还是很陌生。我正在处理我的任务,但我仍然不明白 find() 方法在提取电子邮件时是如何工作的。该函数的目的是使用 find() 方法提取电子邮件的公司(即,@ 符号之后但 . 之前的所有内容)。
示例用法:
extract_company("larhe@uber.com") 应该返回 "uber"
所以我理解 find(subtr, start, end)。我知道它应该如何工作,但只有一种情况。但是,这要求在 @ 和 .
这是我到目前为止一直在工作的代码,但它仍然给我一个断言错误
def extract_company(email):
return email.find('@' and '.')
解决方案
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]
它的作用是查找 '@' 和 '.' 之间的所有字符。然后返回该字符的列表。该列表中的元素是公司名称。
推荐阅读
- numpy - 我怎样才能重复一个数组m次
- c++ - 循环通过 std::deque 并删除条目
- javascript - Vuex Getters 是否返回对状态的引用(数组、对象等)?
- coq - coq 中“|-”的含义是什么,我如何找到其他看似未记录的符号的定义?
- reactjs - 反应获取双网址
- python - 为用户动态推导和实现适当的 selenium web 驱动程序
- python - 单击阻止在 tkinter 中双击
- ios - 设置 PKCanvasView 在图像上绘制并保存
- django - Django:从模板中进行查询是否合适?
- gstreamer - 使用 gstreamer 将原始视频编码为 h264