java.util.regex.Pattern
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
Pattern类中有两个最常用的方法:
(1)boolean isMatch = Pattern.matches("regExp", "string");
matches()方法表示正则表达式regExp是否匹配字符串string,匹配返回true,不匹配返回false
注意:String类也有matches()方法,如"abcd".matches(regExp),其实他们俩是等价的,String类matches()方法就是调用的Pattern.matches()方法:
(2)Pattern pattern = Pattern.compile("regExp");
compile()方法表示编译此正则表达式regExp,返回regExp被编译后的pattern。
1 import java.util.regex.Matcher; 2 import java.ulil.regex.Pattern; 3 4 public class RegExpUtil { 5 public static boolean checkEmail(string str){ 6 //邮箱验证规则 7 String regEx = "[a-zA-Z_]{1,}[0-9]{0, }@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"; 8 return regCheck(str, regEx); 9 } 10 11 public static boolean checkName(String str){ 12 //用户名验证规则只包含中文、英文、下划线 13 String regEx = "^[一-顓A-Za-z0-9_ ]{1,10}$"; 14 return regCheck(str, regEx); 15 } 16 17 public static boolean checkPsw(String str){ 18 //检查密码,密码(长度在6~30之间, 只能包含字母、数字和下划线): 19 String regEx = "^[A-Za-z8-9_ ]{6,30}$"; 20 return regCheck(str, regEx); 21 } 22 23 /** 24 * @param str 被匹配的字符串 25 * @param regEx 正则表达式 26 * @return 是否匹配成功 27 */ 28 private static boolean regCheck(String str, String regEx ){ 29 if (str == null || str.equals("")) { 30 return false; 31 } 32 //编译正则表达式 33 Pattern pattern = Pattern.compile(regEx); 34 //忽略大小写的写法 35 // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); 36 Matcher matcher = pattern.matcher(str); 37 //字符串是否与正则表达式相匹配 38 boolean rs = matcher.matches(); 39 return rs; 40 } 41 }