1.匹配
public static void matchDemo(){ String tel="13812341234"; String regex="1[358][0-9]{9}"; boolean b=tel.matches(regex); System.out.println(b); }
这是最常见的
2.切割
public static void splitDemo() { String str="wqrw&&thuudesuridddfxfxf"; String regex="(.)\\1+";//规则的复用()成为组,以相同字符进行切割,\\1表示对前面组的引用 (.)++,..都是任意字符,前后字符无关联 String [] strspit=str.split(regex); for(String s:strspit) System.out.println(s); }
3.替换
public static void replaceDemo() { String str="我我....我我我.....我我要......要要学....学学学学...编编...编编程程...程程"; str=str.replaceAll("\\.+","").replaceAll("(.)\\1+", "$1");//$可引用前一个参数里对应的组 System.out.println(str); }
public static void ipCompare() {//ip比较,先在前面补0,再切割,进行对应位比较 String ip="192.1.44.67 10.3.65.1 2.4.1.1 34.5.7.8"; String []ips=ip.replaceAll("(\\d+)","00$1" ).replaceAll("0*(\\d{3})","$1" ).split(" +");; Arrays.sort(ips); for(String i:ips){ System.out.println(i.replaceAll("0*(\\d+)","$1")); } }
4.匹配
public static void getDemo() { String str="da jia zhu yi le,ming tian fang jia le"; String regex="\\b[a-zA-Z]{3}\\b"; Pattern p=Pattern.compile(regex);//将规则编译成Pattern对象 Matcher m=p.matcher(str);//和被操作的数进行关联,生成匹配器对象 while(m.find()){ System.out.println(m.start()+"...."+m.group()+"..."+m.end());//start()不包含开始,end()包含结尾 } }
表达式 m.group() 和 str.substring(m.start(), m.end()) 是等效的。