通过python函数查找电子邮件的模式
我正在尝试做一个功能,可以跟踪电子邮件的模式。 函数应该取firstname、lastname和domain,并返回该域的模式 例如,Doodle公司的Joe Smith有电子邮件地址:Joe。smith@doodle.com. 函数应返回{firstname}.{lastname}。但是当电子邮件地址是j。smith@doodle.com它应该返回{firstname[0]}.{lastname},依此类推 我已经尝试过在列表中硬编码所有不同的可能性,并返回正确项的索引,但我正在寻找一种更智能的方法通过python函数查找电子邮件的模式,python,email,Python,Email,我正在尝试做一个功能,可以跟踪电子邮件的模式。 函数应该取firstname、lastname和domain,并返回该域的模式 例如,Doodle公司的Joe Smith有电子邮件地址:Joe。smith@doodle.com. 函数应返回{firstname}.{lastname}。但是当电子邮件地址是j。smith@doodle.com它应该返回{firstname[0]}.{lastname},依此类推 我已经尝试过在列表中硬编码所有不同的可能性,并返回正确项的索引,但我正在寻找一种更智能
def find_pattern(fname, lname, email):
pp = [
fname + "." + lname,
fname + lname,
fname[0] + lname,
fname[0] + "." + lname,
lname,
lname + fname,
lname + fname[0],
lname + "." + fname[0],
lname + "." + fname[0],
fname + "_" + lname,
fname[0] + "_" + lname]
for x in range(len(pp)):
if email.split("@")[0] == pp[x]:
return x
你必须决定你要考虑什么样的分离器,仅此而已。我相信你唯一需要硬编码的是所有不同类型的分隔符,但是当你认为只有一个字母时,没有必要指定索引0,因为你没有从一个更大的字符串中请求一个字符,但字符本身就是字符串。你真的不清楚你在寻找什么“模式”。您通常不能期望电子邮件地址具有显示所有者姓名的localpart。@tripleee,我正在寻找的模式是电子邮件地址的第一部分。公司使用相同的模式为其员工创建电子邮件地址,如果我知道公司X=firstname.lastname的模式,我还可以为我知道在那里工作的每个员工生成电子邮件地址。这里的输入或预期输出仍然不清楚。您的意思是,如果您看到
“Lastname,First”
模式应该告诉您,Outlook.com用户在使用firstname时可以使用此Microsoft命名约定。last@gmail.com
应返回gmail.com:firstname.last
(冒着猜错的风险)。badly@gmail.com)是的,这就是我的意思。它不适用于个人电子邮件地址;)