Pattern类和Matcher类(正则表达式判断的两种方法)

mac2025-11-04  4

Pattern类和Matcher类(正则表达式判断的两种方法)

/* * 判断正则表达式的两种方法 * Pattern和Matcher的结合使用,有获取并打印符合条件的字符串的功能 * 字符串.matches(正则表达式) */ import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegrexPattern { public static void main(String[] args) { // demo1(); /* * 将电话号码,从一段文字中获取出来 * 通常的字符串.maches(正则表达式) 不能做到这一点 * 要使用 Pattern 和 Matcher * Pattern p = Pattern.compile(正则表达式) * Matcher m = p.matcher(字符串) * boolean b = m.find(); 判断是否存在符合条件的字符串,返回值为boolean类型 * m.group() 打印出符合条件的字符串 */ String s = "我的手机号是18371009163,我曾用过18371032393,还用过18371009168"; String regex = "[1][3578]\\d{9}"; // s.matches(regex) 获取不出来 Pattern p = Pattern.compile(regex); Matcher m = p.matcher(s); // boolean b = m.find(); //判断是否有符合正则表达式的字符串,返回值为boolean类型 // System.out.println(b); //打印出符合条件的字符串 // System.out.println(m.group()); //因为符合条件的不止一个,所以,要借助循环 while(m.find()) { System.out.println(m.group()); } } private static void demo1() { /* * 判断正则的两种方法 * pattern 是一个抽象类,使用Pattern.compile("a*b"), 获取正则表达式 * 对象调用匹配器上的字符串,返回一个匹配器 * 匹配器对象调用匹配方法,判断是否匹配 */ Pattern p = Pattern.compile("a*b"); //获取正则表达式 Matcher m = p.matcher("aaaab"); //获取匹配器 boolean b = m.matches(); //看是否能匹配,匹配就返回true System.out.println(b); System.out.println("aaaab".matches("a*b")); //直接调用匹配器,判断字符串与正则表达式是否匹配 } }
最新回复(0)