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