【问题标题】:Using re to validate a email [duplicate]使用 re 验证电子邮件 [重复]
【发布时间】:2017-06-29 09:47:54
【问题描述】:

在python中我该如何解决这个问题

import re

rule = "[A-Z+][\@][A-Z+][\.][A-Z+]"

inputu = input ("please enter your email:").upper()

if re.search (rule, inputu):
    print ("Invalid")

else:
    print ("Valid")

我想尝试一下,这样你就可以把 A-Z 然后它寻找 @ 然后 A-z then 。然后A-Z

【问题讨论】:

  • ...您遇到的问题的描述是什么?
  • 验证电子邮件地址的方法是向其发送确认电子邮件,然后查看用户是否执行了确认操作。尝试验证格式只会导致误报,并没有真正的好处。

标签: python regex


【解决方案1】:

要完成这项工作,您需要将加号移到括号外:

rule = r"[A-Z]+\@[A-Z]+\.[A-Z]+"

但请注意,电子邮件地址也可以包含其他字符,例如数字和句点。更好的规则是这样的:

rule = r"^[A-Z0-9\._+ '\"-]+\@[A-Z0-9]+\.[A-Z0-9]+"

这将检查字符串的开头是否有一些由字母、数字或句点、下划线、破折号、加号、空格或单引号或双引号组成的子字符串。然后是@。然后是另一个由字母和数字组成的子字符串。然后是一个时期。最后是另一个完全由字符串末尾的字母组成的子字符串。

但请注意,这仍然不意味着该地址有效。只是它可能是。如果您确实需要验证电子邮件地址,唯一的方法是向他们发送电子邮件,并让他们回复。

【讨论】:

  • 可能值得参考the standard。否则,您可能会错过"djt jr"@wh.gov。注意引号和嵌入空间。另外,为什么要对 TLD 进行长度检查? ansel@adams.photography呢?
  • 干杯伙伴。不是假装知道所有选项,只是暗示这将是一个更好的规则。不过我会更新答案。
  • 谢谢!但是我只是在理论上修改了格式,所以如果它不是真的没关系,但是谢谢你
猜你喜欢
  • 2011-07-16
  • 2011-06-21
  • 2013-09-25
  • 2012-05-20
  • 2013-01-18
  • 2013-02-12
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多