电子邮箱地址的正则表达式
这里有一个奇怪的用于匹配电子邮件的正则表达式。
我们可以有各种类型的电子邮件地址:
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)
你可以在各种组合上试试这个表达式....
如果这个表达式在某个地方不适用,请告诉我。
我做了一些假设:电子邮件地址(用户名)不会包含特殊字符,只有字母或数字。