当前位置: 代码迷 >> Web前端 >> Java正则表达式证验
  详细解决方案

Java正则表达式证验

热度:370   发布时间:2012-08-25 10:06:20.0
Java正则表达式验证
package com;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
* java正则表达式验证
*/
public class RegExpTest
{
    /**
     * 正则验证方法一
     */
    public static boolean regExpTest() {
        //验证标识符必须由字母、数字、下划线组成
        Pattern p = Pattern.compile("[a-z0-9A-Z_]+");
        Matcher m = p.matcher("aasdad");
        boolean flg = m.matches();
        System.out.println(flg);
        return flg;
    }
    /**
     * 正则验证方法二
     */
    public  static boolean regExpTest2(String str) {
        //匹配标识符必须由字母、数字、下划线组成,且开头和结尾不能有下划线
        //String regex = "(^[a-z0-9A-Z])[a-z0-9A-Z_]+([a-z0-9-A-Z])";
        //匹配标识符必须由字母、数字、下划线组成,且开头和结尾不能有下划线,且中间的字符至少1个不能超过5个
        String regex = "(^[a-z0-9A-Z])[a-z0-9A-Z_]{1,5}([a-z0-9-A-Z])";
        boolean flg = Pattern.matches(regex, str);
        System.out.println(flg);
        return flg;
    }
    /**
     * 去掉前后空格
     */
    public  static String regExpTest3(String str) {
        //去掉前后空格方法一
        //String regex = "^\\[(.*)\\]$";
        //String s1 = str.replaceAll(regex, "$1");
        //方法二,注:replace方法无正则匹配
        String regex = "^\\[|\\]$";
        String s1 = str.replaceAll(regex, "");
       
        System.out.println(s1);
        return s1;
    }
    /**
     * 验证邮箱格式"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"//email地址
     */
    public static boolean regExpTest4(String str) {
        String regex = "^[\\w-]+(\\.[\\w-]+)*\\@([\\.\\w-]+)+$";
        boolean flg = Pattern.matches(regex, str);
        System.out.println(flg);
        return flg;
    }
    /**
     * 验证电话号码
     */
    public  static boolean regExpTest5(String str){
       // "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"     //电话号码
        //String regex = "\\d{3}-\\d{4}-\\d{7,8}-\\d{3}";
        String regex = "(\\d+-)?(\\d{4}-\\d{7,8})(-\\d+)";
        boolean flg = Pattern.matches(regex, str);
        System.out.println(flg);
        return flg;
    }
    public static void regExpTest6(String str){
        String regex = "(\\d+-)?(\\d{4}-\\d{7,8})(-\\d+)";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(str);
        int count = m.groupCount();
        System.out.println(count);
        m.find();//尝试查找与该模式匹配的输入序列的下一个子序列。
        for(int i=1;i<=count;i++) {
            System.out.println(m.group(i));
        }
    }
   
    public static void main(String[] args)
    {
        //从键盘读取文件
       /* Scanner sn = new Scanner(System.in);
        RegExpTest.regExpTest();
        RegExpTest.regExpTest2("asdasaa");
        RegExpTest.regExpTest3("[aa,bb,cc]");
        RegExpTest.regExpTest4("-lgt.q983@hotmail.com.net");
        //RegExpTest.regExpTest5(sn.nextLine());
        */
        RegExpTest.regExpTest6("029-0913-3237259-020");
       
    }
   
}
  相关解决方案