电子邮件地址的正则表达式

4

这里有一个奇怪的用于匹配电子邮件的正则表达式。

我们可以有不同类型的电子邮件地址:

string1@somemail.com

string1@somemail.co.in

string1.string2@somemail.com

string1.string2@somemail.co.in

下面的正则表达式可以匹配上述任何一种电子邮件:

email2="santa.banta@gmail.co.in"
email1="arindam31@yahoo.co.in'"
email="bogusemail123@sillymail.com"
email3="santa.banta.manta@gmail.co.in"
email4="santa.banta.manta@gmail.co.in.xv.fg.gh"
email5="abc.dcf@ghj.org"
email6="santa.banta.manta@gmail.co.in.org"





re.search('\w+[.|\w]\w+@\w+[.]\w+[.|\w+]\w+',email)

x=re.search('\w+[.|\w]\w+@\w+[.]\w+[.|\w+]\w+',email2)
x.group()
santa.banta@gmail.co.in'
x=re.search('\w+[.|\w]\w+@\w+[.]\w+[.|\w+]\w+',email1)
x.group()
arindam31@yahoo.co.in'
x=re.search('\w+[.|\w]\w+@\w+[.]\w+[.|\w+]\w+',email)
x.group()
'bogusemail123@sillymail.com'

这似乎太复杂了...

我稍微概括了一下...

x=re.search('(\w+[.|\w])*@(\w+[.])*\w+',email4)
x.group()
'santa.banta.manta@gmail.co.in.xv.fg.gh'

上述正则表达式现在可以检测任何类型的组合...

现在如果你只想要以'.in'或'.com'结尾的电子邮件地址, 那么你可以添加一个变量...

x=re.search('(\w+[.|\w])*@(\w+[.])*(com$|in$)',email)

您可以在各种组合上尝试此操作......如果表达式无法适应任何地方,请告诉我。
我使用了一些假设:电子邮件地址(用户名)不包含特殊字符,只有单词或数字。

可能是重复的问题:Python如何检查有效的电子邮件地址? - phihag
1
@phihag 我不认为这是一个重复问题,实际上我认为这甚至都不是一个问题。 - amit
1:问题是什么? 2:使用正则表达式验证电子邮件地址是一个非常深入的兔子洞,参见http://www.regular-expressions.info/email.html。 - Simon Righarts
抱歉上一篇帖子有误...我本意是想分享我所做的事情...这不是一个问题...只是信息分享... - Arindam Roychowdhury
1个回答

3

我不知道这是否是重复的......我已经在上面工作了.....认为值得分享......这不是一个问题......只是我认为值得分享的东西...... - Arindam Roychowdhury
1
无论Stack Overflow的人们如何不屑一顾,Arindam的帖子对我个人来说非常有帮助。此外,它还有助于他们的SEO。只是这么说... - Rob Truxal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接