加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间: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);
 }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读