黑马程序员技术交流社区

标题: 验证邮箱的规则 [打印本页]

作者: 高阳    时间: 2013-1-3 11:45
标题: 验证邮箱的规则
//获取文件中的邮箱
        public static void main(String[] args) throws IOException {
                //定义规则\\w表示字母数字,\\W表示非字母数字
                String s="\\w+@\\w+(\\.\\w+)+";
                //读取文件
                BufferedReader br=new BufferedReader(new FileReader("d:\\a.txt"));
                String ss=null;
                while((ss=br.readLine())!=null){
                       
                        Pattern p=Pattern.compile(s);
                        Matcher m=p.matcher(ss);
                        //符合规则,输出
                        while(m.find()){
                                System.out.println(m.group());
                        }
                }
        }
作者: 希望的曙光    时间: 2013-1-3 13:12
本帖最后由 希望的曙光 于 2013-1-3 13:14 编辑

public class RegularTest {  
    public static void main(String[] args) {  
        String email = "6Abuyer2012@juapk.com.cn";   
        System.out.println(isEmail(email));   
    }  
   public static boolean isEmail(String email){  
       // 1、\\w+表示@之前至少要输入一个匹配字母或数字或下划线  
        // 2、(\\w+\\.)表示域名. 为了适应域名 domain.com.cn  
        //        所以后面{1,3}表示可以出现一次或两次或者三次.  
        /* 【邮箱和域名规则】
            邮箱构成说明。邮箱以“用户名” + “@” + “域名” 组成。例如dahejin@126.com ,dahejin 是用户名,.com是域名  
            用户名由字母( A~Z 和 a~z )、数字( 0~9 )和字符( "-" 和 "." 和 "_" )组成。  
            域名由字母(A~Z,a~z)、数字(0~9)和连接符(-)组成。各级域名之间用实点(.)连接。  
            域名部分首字符、尾字符必须是字母或数字。  
            域名之间用实点(.)连接,且最多支持三级域名。(即@后最多支持3个.)
        */  
        String regular = "^(\\.|-|\\w)+@([a-z0-9A-Z]+([a-z0-9A-Z-]+[a-z0-9A-Z])?\\.){1,3}+[a-zA-Z]{2,4}$";   
       Pattern pattern = Pattern.compile(regular);  
       boolean flag = false;  
        if( email != null ){  
            Matcher matcher = pattern.matcher(email);  
           flag = matcher.matches();  
       }  
        return flag;  
   }  
}  





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2