《黑马程序员》 正则的匹配 切割 替换 获取的操作演示
发布时间:2020-12-14 01:54:35 所属栏目:百科 来源:网络整理
导读:------- android培训、 java培训、期待与您交流! ---------- package cn.itcast.p5.regex;public class RegexDemo5 { /** * @param args */ /** * 正则的常见操作: * 正则表达式对字符串的常见操作: * 1,匹配 * 其实就是使用String类中的matches方法 * 2,切
-------
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-Zd]+ 即特殊符号出现一次或多次 // String [] names=str.split("[^a-zA-Zd]+"); //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,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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |