10.14 正则表达式

目录

 正则表达式语法

简介写法

正则封装类

 Matcher类


 正则表达式语法

\: 转义符

^ 以什么开头

$ 以什么结尾

* 有0个或者多个。

+:有1个或者多个。

? :有0个或者1个

[0-9] 0到9的范围数字

[a-z]a到z的范围

[A-Z] A到Z的范围

[^0-9]  取反,非0-9

{n} 匹配出现n次

{n, } 匹配n次以及n次以上

{n,m} 匹配N-M次

() 分组   [] 范围  { }次数

. 任意字符

简介写法

\d 表示匹配一个数字字符 等价于[0-9]

\D 匹配一个非数字字符。等价于[^0-9]。

\s匹配不可见字符

\S 匹配可见的字符

\w  匹配 包括下划线在内的任意单词等价于[a-zA-Z0-9_u4e00-u9fa5]

\W匹配非单词的

1.
匹配整数和小数
String cc="\\d+(\\.\\d+)?";
//正整数
    String positiveInteger="[1-9][0-9]*";
    //整数

    String integer="(-?[1-9][0-9]*)|0";

正则封装类

Pattern

验证     matches   穿进去一个正则

Pattern的方式
boolean matches Pattern.matches(regex:"(-?[1-9][0-9]*)10",ss);
String的方式
boolean matches1 ss.matches(regex:"(-?[1-9][0-9]*)10");

分割

分割
Pattern的方式
Pattern pattern=Pattern.compile(",")
String[]split pattern.split(ss);
for (String eve:split){
System.out.println(eve);
}
String的方式
String[]split1 ss.split(regex:"")
for (string eve:split1)
System.out.println(eve);

替换

替换
ss.replaceAll(regex:"1",replacement:"2");

 Matcher类

匹配分为全词匹配和非全瓷匹配和以正则表达式代表的字符式开头

public class Matcher_01 {
    public static void main(String[] args) {
        String regex = "((.{2,3})的电话是)(\\d{3})(\\d{4})(\\d{4})";
        String number = "张三的电话是13633216508李四的电话是13633216507";
        //创建Pattern    对象 将正则传进去
        Pattern pattern = Pattern.compile(regex);
        // 创建Matcher .matcher方法将字符串穿进去
        Matcher matcher = pattern.matcher(number);
        //全词查找
//        System.out.println(matcher.matches());
//        //非全词查找
//        System.out.println(matcher.find());
        //提取 的循环
        while ( matcher.find()){
        
            System.out.println(matcher .group(1)+matcher.group(3)+"****"+ matcher.group(5));
        }




    }


}

提取  

find和group 一起使用就是提取    

 //提取 的循环
        while ( matcher.find()){

            System.out.println(matcher .group(1)+matcher.group(3)+"****"+ matcher.group(5));
        }

去重

public static void main(String[] args) {
        String input="我我我我我我我......要要要要要要要要要要要要要.......学学学学学学学学学学学学学学学学学...编编编编编编编编编编5223232程程程程程程程程程程程程";
        String regex="(.)(\\1+)";
        //文字处理
       input= input.replaceAll("[^\\u4e00-\\u9fa5]","");  
//        System.out.println(input);
        Pattern compile = Pattern.compile(regex);
        Matcher matcher = compile.matcher(input);
//       while (matcher.find()){
//           System.out.println(matcher.group(1));
//       }
        while (matcher.find()) {
          input= input.replaceAll(matcher.group(0), matcher.group(1));

        }
        System.out.println(input+"!!");




    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值