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("[email protected]"); 
        //RegExpTest.regExpTest5(sn.nextLine()); 
        */ 
        RegExpTest.regExpTest6("029-0913-3237259-020"); 
        
    } 
    
}

本文来源于:http://lgtq1983.iteye.com/blog/1324720

你可能感兴趣的:(java,Pattern,Matcher)