是否有标准或简单的方法来猜测电子邮件地址中的名称,类似于gmail的名称?
例如,“john.smith@whoever.com”应该给“John Smith”。
这样做不应该太难(剥离域名,删除特殊字符,大写等),但我确信应该有现有代码。
Ruby中的代码是首选,但任何其他语言都可以。
答案 0 :(得分:5)
def email_to_name(email)
name = email[/[^@]+/]
name.split(".").map {|n| n.capitalize }.join(" ")
end
p email_to_name("john.smith@foo.com")
# => "John Smith"
这是一项如此简单的任务,我怀疑你会发现任何“现有代码”这样做。
答案 1 :(得分:1)
下面的正则表达式可以解决您的问题
/(\w+)[._-](\w+)@.+/
答案 2 :(得分:1)
Gmail使用信封样式的电子邮件地址作为rfc-822的扩展程序之一。因此,只会猜测电子邮件地址是否为envolope形式,如下所示:Terry Terribad <terry@example.org>
。
对于gmail来说,这只是一个试图找出&lt;&gt;前面的内容的案例。通过解析电子邮件和一般猜测。
否则真的没有办法从我的电子邮件地址猜测我的名字是Chuck Vose因为我不使用chuck.vose或类似的东西。
答案 3 :(得分:0)
一个非常大的常用名和姓的字典,因为并非所有电子邮件地址都与实际名称相关。
如果您的所有邮件都来自一个国家/地区或文化,这可能会更好。
我不得不想知道你为什么要这样做。
答案 4 :(得分:0)
当你猜到这个名字时,这很有趣,因为用户没有在他们的电子邮件地址中使用他们的名字。就像一个人说的那样,你应该有一个常用名字典,你只会猜测你提取的单词(使用正则表达式)是否与字典中的名字相匹配。然而,让它填充一个完全错误和荒谬的人的姓名可能并不是一个坏主意,那么它可能是他们将其改为真实姓名的动机。 : - )
答案 5 :(得分:-3)
Regular expressions可能是要走的路。