Regex 电子邮件地址的域部分可以是IP地址吗?

Regex 电子邮件地址的域部分可以是IP地址吗?,regex,ip-address,email-validation,Regex,Ip Address,Email Validation,我正在尝试构建一个正则表达式来检测有效的电子邮件。我已经阅读了一些关于堆栈溢出的文章。我还阅读了,其中描述了电子邮件地址的不同组成部分: addr-spec = local-part "@" domain local-part = dot-atom / quoted-string / obs-local-part domain = dot-atom / domain-literal / obs-domain dom

我正在尝试构建一个正则表达式来检测有效的电子邮件。我已经阅读了一些关于堆栈溢出的文章。我还阅读了,其中描述了电子邮件地址的不同组成部分:

addr-spec       =       local-part "@" domain

local-part      =       dot-atom / quoted-string / obs-local-part

domain          =       dot-atom / domain-literal / obs-domain

domain-literal  =       [CFWS] "[" *([FWS] dcontent) [FWS] "]" [CFWS]

dcontent        =       dtext / quoted-pair

dtext           =       NO-WS-CTL /     ; Non white space controls

                        %d33-90 /       ; The rest of the US-ASCII
                        %d94-126        ;  characters not including "[",
                                        ;  "]", or "\"
有人能用简单的英语解释一下上面的定义吗?它是否允许发送电子邮件,如
info@[192.168.0.1]


我知道我不必重新发明轮子,而且有一些很好的库可以用来验证电子邮件。我只想了解引擎盖下的工作原理。

在PHP中,您可以使用FILTER\u VALIDATE\u EMAIL。不需要LIB

<?php
$email = "john.doe@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>

在PHP中,您可以使用FILTER\u VALIDATE\u电子邮件。不需要LIB

<?php
$email = "john.doe@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>


为什么要构建已经存在的东西?如果不是出于教育目的,请不要进行自己的电子邮件验证。为什么要构建已经存在的东西?如果不是出于教育目的,请不要自行进行电子邮件验证。