黑马程序员之Java--正则表达式

------- android培训java培训、期待与您交流! ----------


概述:专门用于操作字符串。作用于字符串的一个正确的规则的表达式

好处:用一些符号代表了代表,书写起来更加方便
弊端:因为是符号的表达式,所以阅读起来比较吃力,故先把符号学会

了解下正则的符号
             中括号:      [判断字符上的内容]
            预定义字符: 都带着反斜杠
                .    :      任意字符
              \d   :      数字。[0-9]
              \D  :      非数字。[^0-9]
              \w  :      单词。[a-zA-Z0-9]
              \W :      非单词
               边界字符;
                  ^ :行的开头
                  $ :行的结束
                   \b:单词的边界
               数量词:必须结合字符
                  X?:表示X出现一次或0次
                  X* :表示X出现0次或多次
                  X+ :表示X出现一次或多次
              X{n}:表示X恰好出现n次
                   X{n,}:表示X至少出现n次
               X{n,m}:表示X出现n到m次,不包括m

正则规则的复用------组
         概念:  想复用,先封装,封装用小括号()表示
        编号:  封装完成后有编号,从1开始,直接通过编号调用对应的组
        调用的方式:直接使用已有的组编号,前面加上\\,比如:(\d)\\1,表示在使用已有的第一组内容
        原则: 先有组,才可以使用编号调用对应的组
          String str = "avcssssdfeertyu";
           String regex = "(.)\\1+";   //将叠词作为分隔符(叠词是某个字符连续出现)
               ((A)(B(C)))这个有4个组,只要数左括号的个数即可;组的顺序也就是左括号的顺序
    

常见字符串操作功能:
匹配:使用字符串的matches功能
 String phone = "13677654567";
 String str_regex = "1[358]\d{9}";
 boolean isok =  phone.matches(str_regex);

切割:使用字符串的split功能
      String str = "qwertyrrrtrfvcdsaxx";
      String regex = "(.)\\1+";   //叠词规则
      String[]   strs  =  str.spilt(regex);   //输出   [ qwerty, trfvcdsa ]

替换:使用字符串的replaceAll功能
          String name = "abc@@@@@cde******fg";
          String regex = "(.)\\1+";
          name.replaceAll(regex,"$1");   //输出   abc@cde*fg      
          解说:在参数列表中,其他参数要使用之前参数的规则的组,就要使用$加编号

     需求:将手机号码中间4位用*表示         
              前后用小括号,表示其他参数也会复用到
         String phone = "13877676890";
         regex = "(\\d{3})\\d{4}(\\d{4})";
         phone = phone.replaceAll(regex, "$1****$2");

         System.out.println(phone);//输出 138****6890


获取:其他三个功能最终使用的是Pattern对象
      现在需要使用其他功能,String没有对应的功能,只能找Pattern对象
                 Pattertn对象使用原理:
            1、将正则表达式字符串编译成正则表达式对象
           2、通过Pattertn对象获取Matcher对象(匹配器)
             3、通过匹配器对象对字符串规则的匹配,其结果在匹配器中           
           4、通过匹配器对象获取结果
                 范例代码:
                   Pattertn parttern  = Pattern.compile("a*b");
                 Matcher  m = parttern.matcher("aaaaaaaaaaaaaaaab");
                 boolean b = m.mathcs();
                 while(m.find()){   //查找匹配项
                     System.out.print( m.group() ) ;   //获取对应的字符串
                  }

-------  android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值