前端之家收集整理的这篇文章主要介绍了
《黑马程序员》 正则的匹配 切割 替换 获取的操作演示,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
-------
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,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);
}
}