正则表达式的匹配,切割,替换,获取

mac2025-06-06  10

import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexFunctionDemo { public static void main(String[] args) { //1.匹配 //使用String类的matches方法,匹配是boolean functionDemo_1(); //2.切割 //使用String类的split方法,结果是一个新的字符串 functionDemo_2(); //3.替换 //使用String类的replaceAll(regex,string) functionDemo_3(); //4.获取 /* 其他三个功能内部最终使用的都是Pattern正则表达式对象. 现在需要其他功能时,字符串String类中没有对应的方法,只能找Pattern对象 Pattern对象的使用原理 1.将正则表达式字符串编译成正则对象pattern 2.通过pattern对象获取Matcher对象(匹配器对象) 3.通过匹配器对象对字符串进行规则的匹配,结果都在匹配器中. 4.通过匹配器对象的功能获取结果. Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); */ functionDemo_4(); } private static void functionDemo_4() { String str = "da jia shu yi la,ming tian fang jia le!"; String regex = "\\b[a-zA-Z]{3}\\b";//取出由三个字母组成的单词 //1.获取正则表达式 Pattern p = Pattern.compile(regex); //2.和要操作的字符串关联,获取对应的匹配器对象 Matcher m = p.matcher(str); //3. while(m.find()) { System.out.println(m.group());//start()和end()方法表示目标字符串的前后索引 System.out.println(str.substring(m.start(),m.end())); } } private static void functionDemo_3() { // String str = "jlhfjjhgkhkj@@@@@@jhglg####"; // String regex = "(.)\\1+"; // str = str.replaceAll(regex,"$1");//在参数列表中,其他参数要使用之前参数中规则的组,需要使用 $+组编号 String str = "18991538621"; str = str.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2"); System.out.println(str); } private static void functionDemo_2() { // String str = "zhangsan,lisi,wangwu"; // String regex = ","; // String str = "zhangsan lisi wangwu"; // String regex = " +"; // String str = "zhangsan.lisi.wangwu"; // String regex = "\\.";//单一个 "." 是全分隔 //复用,先封装,用圆括号 //封装完成后有编号,从1开始.组0代表整个表达式. // 规则中被()封装的称之为组.直接通过编号就可以调用对应的组 // 调用方式直接写已有的组的编号前加上 \\ ()\\1,在使用已有的第一组内容.先有组,才可以使用对应的编号 //((A)(B(C))) 4组. 1.ABC 2.A 3.BC 4.C 看左括号 String str = "a;lkghal;kkkkjfeoij###"; String regex = "(.)\\1+";//以正则表达式作为切割点 String[] strs = str.split(regex); for (String s:strs ) { System.out.println(s); } } private static void functionDemo_1() { String str = "18991538621"; String regex = "1[358]\\d{9}"; boolean b = str.matches(regex); System.out.println(str+":"+b); } }
最新回复(0)