正则表达式

正则表达式可以快速匹配文本当中的字符串

使用方法:

1、需要一个待处理的文本

String content = "2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持。" +
                "2001年9月24日,J2EE1.3发布。2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升," +
                "与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、" +
                "安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。" +
                "2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性," +
                "J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新," +
                "其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。";

2、创建一个pattern对象,模式对象(也可以理解为正则表达式对象)

        regStr为要得到的字符串类型

String regStr = "\\d\\d\\d\\d";
Pattern pattern = Pattern.compile(regStr);

3、创建一个匹配器对象

Matcher matcher = pattern.matcher(content);

        就是 matcher 匹配器按照 pattern 模板 去content 文本中进行匹配,匹配到就返回true,否则返回false

4、开始循环匹配

while (matcher.find()){
     //匹配到的内容会放入到matcher.group(0)
     System.out.println("匹配到的内容" + matcher.group(0));
}

  • matcher.find() 当多次执行时会覆盖前面的记录(未分组情况下)若查找1998
  • 1、根据指定的规则,定位满足规则的字符串
  • 2、若找到字符串,将字符串的起始位置进行记录到matcher对象的属性
  • int[] group 中 group[0]就是该字符串的起始位置,group[1]就是该字符串结束位置+1
  • 3、同时记录oldLast为该字符串结束位置+1,即下次执行find是从oldLast处进行匹配  

  • matcher.find() 当多次执行时会覆盖前面的记录(分组情况下)若查找(19)(98)
  • 1、根据指定的规则,定位满足规则的字符串
  • 2、若找到字符串,将字符串的起始位置进行记录到matcher对象的属性
  • int[] group 中 group[0]就是该字符串的起始位置,group[1]就是该字符串结束位置+1 记录字符串的位置 group[0] = 0,group[1] = 4;
  • 记录1组()的位置 group[2] = 0,group[3] = 2;
  • 记录2组()的位置 group[4] = 2,group[5] = 4;
  • 3、同时记录oldLast为该字符串结束位置+1,即下次执行find是从oldLast处进行匹配 

  • matcher.group(0)
  • 输入参数:0 代表要取整个字符串   1 代表要取第1组()   2 代表要取第2组()
  • 开始位置:输入参数*2 结束位置:出入参数*2+1
  • 根据group[0](开始位置)和group[1](结束位置)记录的位置,在content中截取字符串(左闭右开)并进行返回 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值