首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下划线字符匹配所有电子邮件地址regex python

下划线字符匹配所有电子邮件地址regex python
EN

Stack Overflow用户
提问于 2017-09-04 08:00:37
回答 2查看 1.1K关注 0票数 2

我的电子邮件入口格式像username@domain.extension一样

  • 用户名以英文字母字符开头,随后的任何字符都由以下一个或多个字符组成:字母数字字符,-,。,_. .
  • 域和扩展名只包含英文字母。扩展长度为1,2或3个字符。

我使用下面的regex验证我的电子邮件地址:

代码语言:javascript
复制
[a-zA-Z]+\s<\b[a-z0-9._-]+@[a-zA-Z]+\.[A-Za-z]{1,3}\b>

电子邮件地址:

代码语言:javascript
复制
this <is@valid.com>
this <is_it@valid.com>
this <_is@notvalid.com>
this <.is@notvalid.com>
this <-is@notvalid.com>

它匹配电子邮件地址1,2,3,而4,5有。在域名开始的时候,它被拒绝了。那么,为什么第三封电子邮件在域名开始时强调,它会引起问题并被接受,我不能拥有。,-,_在域开始时,按照上面提到的指令。这是链接

更正ans: 1,2电子邮件应该只匹配

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-04 08:04:14

您的字符类在<\b之后接受_,因此任何以-开头的电子邮件地址也都是有效的。

您可以使用此regex只允许字母表作为电子邮件的起始字母:

代码语言:javascript
复制
[a-zA-Z]+\s<\b[A-Za-z][a-zA-Z0-9._-]*@[a-zA-Z]+\.[A-Za-z]{1,3}\b>

更新的RegEx演示

或者你可以利用\w

代码语言:javascript
复制
[a-zA-Z]+\s<\b[a-zA-Z][\w.-]*@[a-zA-Z]+\.[A-Za-z]{1,3}\b>
票数 1
EN

Stack Overflow用户

发布于 2017-09-04 09:27:54

新手到regex:

代码语言:javascript
复制
([a-zA-Z]+[ ][<][a-zA-Z]+[a-zA-Z._-]+[@][a-zA-Z]+\.[A-Za-z]{1,3})[>]

这是我对你问题的尝试:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46032678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档