【发布时间】:2020-07-22 04:46:22
【问题描述】:
我有 9 种电子邮件模式。我期望:
- myname@domainemail.com
- my.name@domainemail.com
- my.name1@domainemail.com
- my_name.1@domainemail.com 是有效的电子邮件。
和
- my-name@domainemail.com
- my.name.1@domainemail.com
- 域名.1@domainemail.com
- 1myname@domainemail.com
- 1.myname@domainemail.com 不是有效的电子邮件。
然后,我制作了正则表达式的脚本,例如:
regex = r"(^[a-zA-Z_]+[\.]?[a-z0-9]+)@([\w.]+\.[\w.]+)$"
但是,电子邮件 domainname.1@domainemail.com 仍然有效。
如何制作正确的模式正则表达式,使电子邮件变得无效,并且所有电子邮件模式都符合我的期望?
【问题讨论】:
-
也许
^(?![a-zA-Z]+\.\d+@)[a-zA-Z_]+(?:\.[a-z0-9]+)?@[\w.]+\.\w+$可以,见demo。 -
也许有一个与下划线匹配的可选部分或在点
^[a-zA-Z]+(?:(?:(?:_[a-zA-Z0-9]+)+\.[A-Za-z0-9]+)|\.[a-zA-Z][a-zA-Z0-9]*)?@\w+(?:\.\w+)+regex101.com/r/Q3TxQc/1之前以a-z开始匹配
标签: python regex validation email-validation