[python] 使用正则表达式验证email地址是否有效

假定email地址的必要形式为:
[email protected]
其他一概不作检查,对应的RE应为:[^@]+@[^@]+\.[^@]+

验证脚本:

import re
p = re.compile(r"[^@]+@[^@]+\.[^@]+")
#p = re.compile(r'([^@]+)@([^@]+)\.([^@]+)')  如果改成这种形式,后面可以打印帐号
emails = ['[email protected]', '@', '@.org', '@xxx.com',
          '[email protected]', 'rs@233.', 'c', 'cde@', '[email protected]']
for each in emails:
    if not p.match(each):
        print(each, " NOT valid")
    else:
        print(each, ' is valid')
        #print(p.match(each).groups()) 

运行结果:

[email protected]  is valid
#('a', 'uuuuuu', 'xyzuv')
@  NOT valid
@.org  NOT valid
@xxx.com  NOT valid
[email protected]  NOT valid
rs@233.  NOT valid
c  NOT valid
cde@  NOT valid
[email protected]  is valid
#('xy', '163', 'com')

[1] https://stackoverflow.com/questions/8022530/python-check-for-valid-email-address

猜你喜欢

转载自blog.csdn.net/ftell/article/details/80436266