【发布时间】:2011-09-13 06:03:14
【问题描述】:
Struts2 有一个完美的电子邮件验证器。其单个电子邮件地址的正则表达式如下:
\\b(^[_A-Za-z0-9-](\\.[_A-Za-z0-9-])*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b
由于验证 TLD,时间过长。但只要看看它的开始和结束。
我的问题是关于包装 \\b.将 \\b 放在正则表达式的开头和结尾是什么意思(甚至在 ^ 之前和 $ 之后)?
【问题讨论】:
-
它根本不是“完美的”,它不允许例如本地部分中的加号和等号,并且不允许域部分中的子域(显然是事后才想到的 CCTLD 表达式意外地对此进行了一些补救,但它仍然是错误的)。
-
好的。但这不是重点。
-
嗯,他们实际使用的正则表达式更好。文档字符串显然已过时。 svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/…
-
是的,考虑到已经有
^/$,它们似乎是虚假的。
标签: regex email struts2 pattern-matching validation