[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+ 这个是一个匹配邮箱的正则表达式,但是好像有问题,但我又找不到,麻烦各位帮我看一下吧~
ps:有什么关于正则表达式的好的资料推荐啊

解决方案 »

  1.   

    我有正则表达式的电子资料,你可以把你邮箱给我,或者加我QQ 735973629。
    我以前看一个视频自学过正则表达式,之后陆陆续续看过几次,也简单地用过几次。所以我发表下个人对上述正则表达式的理解。是否正确还有待商榷,O(∩_∩)O~。
    [] 这个属于模式匹配符,比如[abc]表示是a、b、c中的一个。
    所以
    [\\w\\.\\-]+
    表示的是1个或多个普通字符(\\w)或.或连接符-(因为用了转义字符\,而不用转义的话-表示的是从什么什么的范围,比如[a-z]代表26个小写字母中的任意一个)。
    @就是邮件的标志 @ 了。
    后面的
    [\\w\\-]+\\.
    表示的是一个或多个普通字符或连接符-,其后必须跟一个句点‘.’。
    ([\\w\\-]+\\.)+
    比上面就多了一个+号表示的是一个或多个了。
    [\\w\\-]+
    这个也同理是匹配一个或多个普通字符或连接符 - 。
    可以用个例子:
    比如一个邮箱是 [email protected]
    先看@之前的ZS-msn是否与[\\w\\.\\-]+匹配,
    按照上面讲的显然匹配的。
    再看@之后cn之前的yahoo.com.与([\\w\\-]+\\.)+是否匹配,
    就不匹配了,因为两个句点的位置不匹配。
    剩下的cn显然与[\\w\\-]+匹配。所以这个邮箱匹配正则表达式是有问题的。
    在Java里可以用下面的代码来简单测试字符串是否匹配正则表达式模式。
    String format = "^[a-z A-Z 0-9]{5,}$";
    str.matches(format); //str是待检测是否匹配的字符串就说这么多了,有问题,尽管继续问,我能帮的尽量帮。
      

  2.   

    我上面错了,不好意思。
    再看@之后cn之前的yahoo.com.与([\\w\\-]+\\.)+是否匹配,
    就不匹配了,因为两个句点的位置不匹配。这两个是匹配的,我一时弄错了。不好意思。