某些电子邮件规则的正则表达式

时间:2010-02-17 13:47:44

标签: regex

我正在使用正则表达式来处理电子邮件格式,我认为这样可以,但客户抱怨表达式过于严格。所以他们回来了以下要求:

电子邮件必须包含“@”符号,并以.xx或.xxx即。(。nl或.com)结尾。他们很高兴通过验证。我已经启动了表达式,以查看字符串是否包含“@”符号,如下所示

^(?=。* [@])

这似乎有效,但如何添加最后一项要求(必须以.xx或.xxx结尾)?

6 个答案:

答案 0 :(得分:2)

正则表达式只是强制执行您的两个要求:

^.+@.+\.[a-zA-Z]{2,3}$

但是,大多数语言的电子邮件验证库通常比正则表达式更好。

答案 1 :(得分:2)

我总是将此用于电子邮件

          ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
            @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
            @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

尝试http://www.ultrapico.com/Expresso.htm

答案 2 :(得分:2)

无法使用RegEx验证每个电子邮件地址,但是根据您的要求,这个简单的正则表达式可以正常工作。它既不完整也不以任何方式检查错误,但它完全符合规范:

[^@]+@.+\.\w{2,3}$

说明:

  • [^ @] +:匹配一个或多个不是@
  • 的字符
  • @:匹配@
  • 。+:匹配任何一个或多个字符
  • \。:匹配a。
  • \ w {2,3}:匹配2或3个单词字符(a-zA-Z)
  • $:字符串结尾

答案 3 :(得分:1)

试试这个:

([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})\be(\w*)s\b

测试正则表达式的好工具: http://gskinner.com/RegExr/

答案 4 :(得分:0)

您可以使用

[@].+\.[a-z0-9]{2,3}$

答案 5 :(得分:0)

这应该有效:

^[^@\r\n\s]+[^.@]@[^.@][^@\r\n\s]+\.(\w){2,}$

我针对这些无效的电子邮件进行了测试:

@exampleexample@domaincom.com   
example@domaincom  
exampledomain.com  
exampledomain@.com  
exampledomain.@com  
example.domain@.@com  

e.x+a.1m.5e@em.a.i.l.c.o  

some-user@internal-email.company.c  
some-user@internal-ema@il.company.co  
some-user@@internal-email.company.co  

@test.com  
test@asdaf  
test@.com    
test.@com.co  

这些有效的电子邮件:

example@domain.com  
e.x+a.1m.5e@em.a.i.l.c.om  
some-user@internal-email.company.co 

修改

这个似乎验证了该维基百科页面中的所有地址,但它可能也允许一些无效的电子邮件。括号将把它分成@:

之前和之后的所有内容
^([^\r\n]+)@([^\r\n]+\.?\w{2,})$

niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
user@[IPv6:2001:db8:1ff::a0b:dbd0]
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
postbox@com
admin@mailserver1
 !#$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org
üñîçøðé@example.com
üñîçøðé@üñîçøðé.com