public static Pattern compile(String regex) 指定正则表达式规则,以及实例获取 public Matcher matcher(CharSequence input) 返回Matcher类的实例 public String[] split(CharSequence input) 字符串拆分
Matcher
如果要验证一个字符串是否符合规范,则可以使用Matcher类。
常用方法
1 2 3 4
public Matcher matcher(CharSequence input) 可以为matcher类实例化 public boolean matches() 执行验证,进行字符串的验证 public String replaceAll(String replacement) 字符串替换,与String中的相同。 public String[] split(CharSequence input) 拆分,在String中也存在拆分操作。
实例
matcher匹配实例
1 2 3 4 5 6 7 8 9 10 11 12 13
@Test publicvoidtestDate(){ String str = "1993-07-27"; // 指定好一个日期格式的字符串 String pat = "\\d{4}-\\d{2}-\\d{2}"; // 指定好正则表达式 Pattern p = Pattern.compile(pat); // 实例化Pattern类 Matcher m = p.matcher(str); // 实例化Matcher类 if (m.matches()) { // 进行验证的匹配,使用正则 System.out.println("日期格式合法!"); } else { System.out.println("日期格式不合法!"); } //日期格式合法! }
split拆分
1 2 3 4 5 6 7 8 9 10 11 12
@Test publicvoidtestSplit(){ // 要求将里面的字符取出,也就是说按照数字拆分 String str = "A1B22C333D4444E55555F" ; // 指定好一个字符串 String pat = "\\d+" ; // 指定好正则表达式 Pattern p = Pattern.compile(pat) ; // 实例化Pattern类 String s[] = p.split(str) ; // 执行拆分操作 for(int x=0;x<s.length;x++){ System.out.print(s[x] + "\t") ; } //A B C D E F }
特殊构造(非捕获) (?:X) X,作为非捕获组 (?idmsux-idmsux) Nothing,但是将匹配标志i d ms u x on - off (?idmsux-idmsux:X) X,作为带有给定标志 i d m s u x on - off的非捕获组 (?=X) X,通过零宽度的正 lookahead (?!X) X,通过零宽度的负 lookahead (?<=X) X,通过零宽度的正 lookbehind (?<!X) X,通过零宽度的负 lookbehind (?>X) X,作为独立的非捕获组