如何使用正则表达式实现以下功能:
使用Python。
目前,我试图匹配电子邮件地址与这些规则包括。我目前的模式是
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个字符,应该用一个点隔开。域名不能以-开头或结尾。
这个信息是为了帮助你理解我想要什么,主要问题是关于我在上面提到的三条规则。如果你告诉我如何实现这些目标,我会很高兴的。
发布于 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])+)])
https://stackoverflow.com/questions/20998918
复制相似问题