《黑马程序员》 正则的匹配 切割 替换 获取的操作演示

------- 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);
 }
}








Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值