【发布时间】:2014-04-18 19:15:42
【问题描述】:
我正在尝试构建一个复杂的正则表达式,我记得读过一篇关于电子邮件地址验证的文章,其中正则表达式的每个部分都被分解为更简单的单个正则表达式,例如:
email := <localpart>@<domainpart>
localpart := (?:<mailbox>\+)?(<username>)
domainpart := <domainname>\.<tld>
etc...
但我似乎找不到任何类似的文档。是否有类似的有效编程语法,还是我记错了一些 RFC 样式的伪代码?
注意事项:
- 我不是要验证电子邮件地址,我知道
filter_var()和FILTER_VALIDATE_EMAIL。 - 我添加了 perl 标签,因为在我的旅行中有人说“我认为 perl 有类似的东西”
【问题讨论】:
-
my $email = qr/$localpart\@$domainpart/; -
我想你可能会觉得这个answer很有趣。
-
您应该在问题中明确指出您正在寻找 PHP 解决方案,否则您很可能会从浏览 perl 标签的人那里得到 Perl 答案。
-
@Sammitch 我链接的答案是 PCRE 解决方案。请注意
PCRE != perl regex。由于 PHP 使用 PCRE,它应该是您正在寻找的。顺便说一句,我也希望它可以在 perl 上运行,但不确定。 -
删除了“perl”标签