import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestMatcher { public static void main(String[] args) { //正则表达式对字符串的常见操作:字符串的匹配、切割、替换、获取。 //字符串的匹配:matches() /*常用写法*/ // 1. boolean b = Pattern.matches("正则表达式", "匹配内容"); String str = "13111225544"; String regexp = "\\d{11}$"; boolean b = Pattern.matches(regexp, str); System.out.println("正则匹配结果="+b); /*标准写法*/ // 2.Pattern p = Pattern.compile("正则表达式"); Matcher m = p.matcher("匹配内容"); // boolean b = m.matches(); Pattern p = Pattern.compile(regexp); Matcher m = p.matcher(str); boolean b2 = m.matches(); System.out.println("正则匹配结果="+b2); /*语句匹配写法*/ // 3.if("aaab".matches(/^a*b$/)) {}; System.out.println("正则匹配结果="+(str.matches(regexp))); // 字符串切割:split() //DEMO // String str = "需要切割的字符串"; //描述切割规则 // String regex = "正则表达式"; //切割后的字符串仍是字符串: // String sstr1 = str.split(regex); //切割后的字符串放在数组中: // String[] sstr2 = str.split(regex); String s = "哈哈##呵呵###哦哦#"; String regex = "#+"; String[] sstr1 = s.split(regex); for(String string:sstr1){ System.out.print(string); } // 字符串替换:replaceAll() //DEMO // String str = "需要替换的字符串"; //匹配规则 // String regex = "正则表达式"; // String Str = str.replaceAll(regex, "替换内容"); String str2 = "哈喽##你好###大聪明"; //匹配规则 String regex2 = "(.)\\1+"; //拓展:叠词切割 String regex = "(.)\\1+",这里用到了组的概念。 //替换为: String newStr = str2.replaceAll(regex2, "、"); //替换后结果: System.out.println(newStr); // 字符串获取:group() //DEMO //获取字符串“Hi ! welcome to my blog haha”中为两个字母的单词. String s3 = "Hi ! welcome to my blog haha"; //1、匹配子串 String regex3 = "\\b[a-zA-Z]{2}\\b"; //2、获取匹配器 Pattern p3 = Pattern.compile(regex3); Matcher m3 = p3.matcher(s3); //3、使用匹配器的group()方法来获取:(find方法是判断是否具有匹配子串)、 System.out.println("”"+s+"“中的两个字母的单词有:"); while(m3.find()){ System.out.println(m3.group()); } } }