首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将电子邮件与特定规则相匹配

问如何将电子邮件与特定规则相匹配
EN

Stack Overflow用户
提问于 2014-01-08 14:52:01
回答 1查看 86关注 0票数 0

如何使用正则表达式实现以下功能:

  • 如果字符串没有以某个字符开头,则匹配
  • 如果没有",“或任何其他字符,则匹配。
  • 如果字符串有双",即使它们不相邻,也要匹配。

使用Python。

目前,我试图匹配电子邮件地址与这些规则包括。我目前的模式是

代码语言:javascript
复制
pattern = '^([A-Z0-9._-\"]|\"[!\,;]\"){1-127}+@[^-][A-Z0-9.-]{3-256}+\.[A-Z]{2,4}[^-]$'

但我对如何执行这些规则感到困惑。

更具体的是:我想要一个模式,以匹配一个电子邮件入口由两个部分(名称,域名)。名称部分应该不再是,而不是128个字符,应该放在@之前。它应该是 - Z0-9切划器的协手,也可以是.、_、-、"。名称不能用在相邻的点上。如果名称有",则应该与另一个“E 220”匹配。名称E 121可以有!;字符<代码>E 222如果它们介于E 123配对“e 224之间。

域名应该是不超过256个和不短于3个字符,应该用一个点隔开。域名不能以-开头或结尾。

这个信息是为了帮助你理解我想要什么,主要问题是关于我在上面提到的三条规则。如果你告诉我如何实现这些目标,我会很高兴的。

EN

回答 1

Stack Overflow用户

发布于 2014-01-08 15:22:48

我对你的问题感到困惑。你的标题是逗号分隔列表,然后你谈论电子邮件地址。对于电子邮件,有一个官方的标准规范:

(?:[a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])")@(?:(?:a-z0-9?.)+a-z0-9?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])+)])

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

https://stackoverflow.com/questions/20998918

复制
相关文章

相似问题

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