转 totodo(土豆仙)
import java.util.regex.*;
public class TestRegex{
public static void main(String agrs[]){
String  input ="[email protected]";
Pattern p = Pattern.compile("^[\\w-.]+@([\\w-]+.)+[\\w-]{2,4}$");
Matcher m = p.matcher(input);
boolean b = m.matches();
System.out.println(b);
}
}

解决方案 »

  1.   

    这里有一个正则表达式测试工具http://javagarden.yeah.net
      

  2.   

    如果规则是:必须以字母开头,后接若干个字母,数字,后接"@",后接若干个字母,数字,用"."分隔:[a-z][a-z0-9]?@[a-z0-9]+[\.[a-z0-9]?]?判断前先转换成小写这样可以减少正则表达式的复杂度
      

  3.   

    现在是早上 08:46 ,楼上2个地址都经测试都可以打开:)HOHO!
      

  4.   

    javagarden用了网易的域名转向,有时没转成功,也可直接访问http://turbochen.go.nease.net/
      

  5.   

    搂主的“是否有效?“是不是指:
    这个email地址字符串,要包含"@",并且不以“@“开头和结尾呀。还有其它要求吗?
    public class test {
    public static void main(String args[] ) {
    String REGEX = "^[^@]([a-zA-Z_0-9.])+@([a-zA-Z_0-9.])+[^@]$";
    String strTmp = "[email protected]";
    System.out.println("******" + strTmp.matches(REGEX));
    }
    }
      

  6.   

    是不是改成[a-zA-Z0-9]+@[a-zA-Z0-9]+[\.[a-zA-Z0-9]+]+更正确一些呢,
    请到 http://javagarden.yeah.net用正则表达式工具进行测试
      

  7.   

    因为email地址中也可以有"_"和"-",所以完整答案应该是
    [a-zA-Z0-9_\-]+@[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-.]+
      

  8.   

    email@以前也可以用.的
    因此还是qm0445(海狗) 得完整一些,
    ^[\\w-.]+@[\\w-.]+[\\w]+$
      

  9.   

    [\\w|.]{3,16}@[\\w+\\.]+[\\w]{2,3}有的邮箱允许".",比如163的邮箱,所以感觉应该加上.另外,域名最后的一个部分的长度只能是2或者3,用户名的长度应该小于16
      

  10.   

    我认为应该以排除不能用的自负为主  ! ? * 这些好像都不行还不能以 www 开头 不能以 @ 开头…………不知道有没有现成的
      

  11.   

    email地址规则应该是:
    必须以字母开头,后接数字,"-","_"和".",但不能有两个连续的".."或"--"吧?(能不能出现两次"a.b.c"尚未可知)
    然后接"@"
    "@"后是标准的域名如"sohu.com","sina.com.cn","163.com"本人对正则表达式也只是略知一二,哪位高手可给个完善的正则表达式?