使用正则表达式在PHP中使用多级域验证电子邮件地址

使用正则表达式在PHP中使用多级域验证电子邮件地址,php,regex,Php,Regex,需要使用单域级别或多域级别验证电子邮件地址。(实际上,域级别您的正则表达式在接受电子邮件地址时应用了更多规则。例如,允许电子邮件地址包含多个@符号。请按照您自己的规则执行: ^[a-z][^@]*@(([a-z][a-z0-9-]+)\.){0,3}(?2)$ 也许这就是你要找的 ^ [a-zA-Z][-.\w]* # before @ @ [a-zA-Z][-.\w]+ # first subdomain (?: \.[a-zA-Z][-.\w]+ # eve

需要使用单域级别或多域级别验证电子邮件地址。(实际上,域级别您的正则表达式在接受电子邮件地址时应用了更多规则。例如,允许电子邮件地址包含多个
@
符号。请按照您自己的规则执行:

^[a-z][^@]*@(([a-z][a-z0-9-]+)\.){0,3}(?2)$

也许这就是你要找的

^
[a-zA-Z][-.\w]*       # before @
@
[a-zA-Z][-.\w]+       # first subdomain
(?:
    \.[a-zA-Z][-.\w]+ # eventually others
){1,3}
$

请参阅。

尝试使用
过滤验证电子邮件
过滤var()
?我已经完成了一个过滤var($s\u电子邮件,过滤消毒电子邮件);@abracadver我需要验证这样的东西->000@example.com.jp所以,如果我使用FILTER_VALIDATE_电子邮件本身,上面说的电子邮件在技术上也是有效的。因为这是一封有效的电子邮件,所以你只想接受某些有效的电子邮件…你能解释一下这部分吗[^@]*@是的,它意味着除了
@
@
之外的任何字符。如果您没有使用
a-Z
,则需要
i
修饰符。这不值得注意,但我已经在live demo中设置了它。@abracadever您忽略了用户名/域名中带有点
和破折号
-
的电子邮件地址。
^
[a-zA-Z][-.\w]*       # before @
@
[a-zA-Z][-.\w]+       # first subdomain
(?:
    \.[a-zA-Z][-.\w]+ # eventually others
){1,3}
$