通过python函数查找电子邮件的模式

通过python函数查找电子邮件的模式,python,email,Python,Email,我正在尝试做一个功能,可以跟踪电子邮件的模式。 函数应该取firstname、lastname和domain,并返回该域的模式 例如,Doodle公司的Joe Smith有电子邮件地址:Joe。smith@doodle.com. 函数应返回{firstname}.{lastname}。但是当电子邮件地址是j。smith@doodle.com它应该返回{firstname[0]}.{lastname},依此类推 我已经尝试过在列表中硬编码所有不同的可能性,并返回正确项的索引,但我正在寻找一种更智能

我正在尝试做一个功能,可以跟踪电子邮件的模式。 函数应该取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)是的,这就是我的意思。它不适用于个人电子邮件地址;)