Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 电子邮件地址的本地部分是否有最小长度要求?_Regex_Vb.net - Fatal编程技术网

Regex 电子邮件地址的本地部分是否有最小长度要求?

Regex 电子邮件地址的本地部分是否有最小长度要求?,regex,vb.net,Regex,Vb.net,我正在使用此表达式验证电子邮件地址: “^a-z0-9-]+([a-z0-9-]+)@[a-z0-9-]+([a-z0-9-]+)*([a-z]{2,4})$” 我注意到为了验证电子邮件地址,我需要在@符号前至少输入3个字符。这是要求吗?如果我只想在@符号前有一个或两个字符的电子邮件地址怎么办?完全可以有一个只有一个字符的电子邮件地址。RFC822中定义了所有指南: 必要的正则表达式:我继续,决定使用这个: “^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-z

我正在使用此表达式验证电子邮件地址:

“^a-z0-9-]+([a-z0-9-]+)@[a-z0-9-]+([a-z0-9-]+)*([a-z]{2,4})$”


我注意到为了验证电子邮件地址,我需要在@符号前至少输入3个字符。这是要求吗?如果我只想在@符号前有一个或两个字符的电子邮件地址怎么办?

完全可以有一个只有一个字符的电子邮件地址。RFC822中定义了所有指南:


必要的正则表达式:

我继续,决定使用这个:

“^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\)+[a-zA-Z]{2,9})$”


它允许我为本地部分输入1个或多个字符。

您的正则表达式不正确。你真的应该改变它。甚至提供了更灵活的变体:

"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$"

“^(?“”(“+?”@)([0-9a-zA-Z]((\.(?!\)[-!\$%&'\*\+/=\?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\w])*(?0,如果不计算引用双引号,则最小值为1

“”@example.com

a@example.com



我将如何更改正则表达式以反映这一点?是的,该正则表达式太长了。我拥有的正则表达式很好,我只想在@之前至少允许1个字符。@Xaisoft,你拥有的正则表达式不好,它不正确。假设我想在我的电子邮件地址中使用
。@Brad:它不完美,但我认为它很好——我怀疑这一点t不可忽略的是,有相当数量的人使用“a”#"在他们的电子邮件地址中。@Tikhon,你的怀疑是错误的。我认识一些人使用
#
在他们的邮箱中指定不同的标记等。这是一个基本功能,很容易通过正则表达式允许。没有什么理由不这样做。我在这里找到了这个。我不确定如何更改它以允许至少1个字符。你在哪里找到的你觉得这样吗?你提供的这个正则表达式是错误的,原因很多。MS Outlook不会阻止你使用
a@b.com
@Brad-我在这里找到了它:基本上我只需要检查用户是否输入了以下内容a@a.com或a@a.au或a@a.com2An解释为什么这被否决会很好。这是我在这里找到的,I b我相信它来自正则表达式-info。在这种情况下,质量是什么意思?如果是因为它与某些地址不匹配,我不会将其定义为质量。我会说这更多是一个定量方面。我正在寻找的正则表达式不需要验证世界上所有可能的地址。如果它只是有一个@符号就可以了。这个标准不好。这就是为什么我认为是否决票。VMAtm,我明白你的意思,但你必须意识到我刚刚在网上找到正则表达式并尝试了一下。我从来没有承诺过。我肯定应该写快速开发的程序
   Mailbox        = Local-part "@" ( Domain / address-literal )

   Local-part     = Dot-string / Quoted-string
                  ; MAY be case-sensitive


   Dot-string     = Atom *("."  Atom)

   Atom           = 1*atext

   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE