-------
android培训、
java培训、期待与您交流! ----------
package cn.itcast.p5.regex; public class RegexDemo5 { /** * @param args */ /** * 正则的常见操作: * 正则表达式对字符串的常见操作: * 1,匹配 * 其实就是使用String类中的matches方法 * 2,切割 * 其实就是使用String类中的split方法 * 3,替换 * 其实就是使用String类中的replaceAll方法 * 4,获取 */ public static void main(String[] args) { // reflexDemo(); // regexDemo_1(); // regexDemo_2(); // regexDemo_3(); // regexDemo_4(); regexDemo_5(); } /** * 演示替换 * */ private static void regexDemo_5() { //演示1,替换www // String str="www.baidu.com"; // String str2=str.replaceAll("w+", "bbs"); //演示2,替换ttttt,mmmmmmmmmm为. // String str="sinammmmmcomuuuuuuu"; // String str2=str.replaceAll("(.)\\1+", "."); //演示3, // String str="张明mmm李梦ttttt湖北qqqqqq上海"; // String str2=str.replaceAll("(.)\\1+", "|"); // //张明|李梦|湖北|上海 //演示4,使用组切割,并且使用每个组的第一个字符做为分割标记 // String str="张明mmm李梦ttttt湖北qqqqqq上海"; // String str2=str.replaceAll("(.)\\1+", "$1"); //张明m李梦t湖北q上海 //对电话号码的替换 String tel="15800001111"; String tel2=tel.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2"); //158****1111 //把上面的网址做成这样的效果 String str="wwwqqqqbaidujjjjjjjjjcom"; String url=str.replaceAll("([a-z]{3})(.)\\2+","$1."); //www.baidu.com System.out.println(url); } /** * 演示切割 * * 组:((A)(B)(C)) * */ private static void regexDemo_4() { String str="xiaoqiangmmmmshichuaneeeeeehefeiaaaaaawangbocccccccclimengla"; //使用组的方法: String [] names=str.split("(.)\\1+"); for(String name:names){ System.out.println(name); } } /** * 演示切割 * * 组:((A)(B)(C)) * */ private static void regexDemo_3() { //所有的名字都是以空格隔开 // A String str="xiaoqiang shichuan hefei wangbo limengla"; //使用一个空格进行切割 //A String [] names=str.split(" "); // B 所有的名称都是以一个或多个空格隔开 // String str="xiaoqiang shichuan hefei wangbo limengla"; // B 使用正则中的空格+即空格出现一次或多次时,当条件满足了。我们就可以进行切割 // String [] names=str.split(" + "); //C 所有名称都是以.隔开 // String str="xiaoqiang.shichuan. hefei.wangbo.limengla"; //C 我们使用正则来进行分割:\\.使用了转义字符 // String [] names=str.split("\\."); //\\.的含义,它不是代表任意字符吗? //D 使用一个或多个特殊符号来隔开 String str="xiaoqiangmmmmshichuaneeeeeehefeiaaaaaawangbocccccccclimengla"; // D 使用如下进行切割:[^a-zA-Z\\d]+ 即特殊符号出现一次或多次 // String [] names=str.split("[^a-zA-Z\\d]+"); //\d表示0-9的数字,在字符串使用的时候需要使用\来进行转义所以就成了\\d // String [] names=str.split("[^a-zA-Z0-9]+"); //和上面的方法等效 //使用组的方法: String [] names=str.split("(.)\\1+"); //和上面的方法等效 for(String name:names){ System.out.println(name); } } /* * 演示匹配 * */ private static void regexDemo_2() { //1,匹配手机号码是否正确 String str="13493611272"; //一定要是1开头,第二位是3,5,8都可以,即 13x,15x,18x然后从第三位 //开始,到最后一位,只要是0-9的数字就可以了,我们可以使用\d来替换0-9, //因为它代表的就是0-9的数字 String regex="1[358]\\d{9}"; boolean b=str.matches(regex); System.out.println(b); } private static void regexDemo_1() { //1,匹配手机号码是否正确 String str="13493611272"; //一定要是1开头,第二位是3,5,8都可以,即 13x,15x,18x然后从第三位 //开始,到最后一位,只要是0-9的数字就可以了 String regex="1[358][0-9]{9}"; boolean b=str.matches(regex); System.out.println(b); } private static void reflexDemo() { String str="103Qns"; // String regex="[0-9]{3,6}"; String regex="[a-zA-Z0-9]{3,6}"; boolean b=str.matches(regex); System.out.println(b); } }