正则常见方法演示

正则常见方法演示

正则学习步骤:

1、正则表达式的规则与方法介绍

2、正则常见方法演示

3、正则表达式应用(重点:爬虫)

 

package regex.demo;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

/*

 * 正则表达式的常见方法:

 * 1、匹配。

 *                         其实使用的就是String类中的match方法。

 * 2、切割。

 *                         其实使用的就是String类中的split方法。

 * 3、替换。

 *                         其实使用的就是String类中的replaceAll方法。

 * 4、获取。

 *

 *

 */

public class RegexDemo2 {

 

         publicstatic void main(String[] args) {

                   function_4();

         }

 

         public  static void function_4() {

                  

                  /*

               *4、演示获取

               *步骤:

                      *    1、将正则表达式进行对象的封装。

                      *    Pattern p=Pattern.compile("a*b");

                      * 2、通过正则对象的match方法与字符串相关联。获取要对字符串操作的匹配器对象Match。

                      * Matcher m=p.matcher("aaaab");

                      * 3、通过Match匹配器的方法对字符串进行操作。

                      * boolean b=m.match();

               * 需求:

                 *           获取字符串中三个字母组成的单词。

               *

               */

                  

                   Stringstr="da jia hao,ming tian bu fang jia.";

                   Stringregex="\\b[a-z] {3}\\b";

                //1、将正则封装成对象。

                   Patternp=Pattern.compile(regex);

                  //2、通过正则对象,获取匹配器对象。

                   Matcherm=p.matcher(str);

                //使用Matcher对象的方法对字符串进行操作。

              //既然要获取三个字母组成的单词

              //查找。find();

                   System.out.println(str);

                   while(m.find()){

                            System.out.println(m.group());//获取匹配的子序列。

                            System.out.println(m.start()+":"+m.end());

                   }

                  

                  

         }

 

         public  static void function_3() {

                  

                /*

               *3、 演示替换。

               *需求:1、将叠词替换为"#"。2、将号码替换为158****1111。

               */

                   Stringstr="zhangsan...lisigggwangwu";

                            str=str.replaceAll("(.)\\1+","#");//str.replaceAll("(.)\\1+", "$1");

                   System.out.println(str);

                   Stringtel="15800001111";

                   tel=tel.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2");

                   System.out.println(tel);

                  

                  

         }

 

         publicstatic void function_2() {

                  

                   /*

               /2、 演示切割。

               * 需求:以一串叠词作为分隔符。

               * 组:((A)(B(c)))

                    */

                   Stringstr="zhangsan...lisigggwangwu";

                   String[]names=str.split("(.)\\1+");//str.split("\\.");//str.split("+");

                   for(Stringname:names) {

                            System.out.println(name);

                   }

         }

 

         public  static void function_1() {

                  /*

               *1、 演示匹配。

               */

              //匹手机号码是否正确。

                   Stringtel="15800001111";

//            String regex="1[358][0,9]{9}";

                   Stringregex="1[358]//d {9}";

                   booleanb=tel.matches(regex);  

                   System.out.println(tel+":"+b);

                  

              

         }

 

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值