很早就看到正则表达式了,但是一直没有机会学,这回Java也有正则表达式的API,正好可以学一学。
正则表达式验证字符串的合法性的效率真是那个高啊,呵呵。
通过学习,参考了网上的一些做法,写出了一个自己认为比较完美的email正则表达式(写为一行):
^[a-zA-Z0-9]+((\.|_|-)[a-zA-Z0-9]+)*@
[a-zA-Z0-9]+((\.|-)[a-zA-Z0-9]+)*\.[a-zA-Z]{2,4}$
自我认为:
1.使用[a-zA-Z0-9]而不是使用\w,因为\w包含了“_”,虽然它也是邮箱地址的合法的部分,但是邮箱地址一般不让这个符号做为开头和结尾。
2.多级子域名支持,且限制域名后缀为2-4个字符(如cn/com/info)
3.没有对邮箱长度进行限制,如果需要限制可以添加{min,max}到相应位置。
以上正则表达式仅为自己对邮箱地址的看法,没有仔细查阅相关权威机构定义的合法的邮箱名和域名。
以上正则表达式仅为自己学习所做,欢迎参考,欢迎批评指正!

