Java中的模式匹配(从字符串中选出自己想要的单词)(检索和指定模式匹配的字符序列)

Java中的模式匹配

定义:模式匹配就是检索和指定模式匹配的字符序列。Java提供了专门进行模式匹配的类:Pattern类和Matcher类(其中涉及正则表达式,大家可以看一下这一篇文章,链接: Java中的正则表达式及相关知识(零基础学习)

步骤

数据源

String dataSource="hello,good morning,this is s";

建立Pattern类的对象并封装一个正则表达式

String regex="good";
Pattern pattern=Pattern.compile(regex);

Pattern类也可以第哦啊用类方法compile(String regex,int flags)返回一个Pattern对象,参数flags可以取下列有效值:

  • Pattern.CASE_INSENSITIVE 模式匹配时忽略大小写
  • Pattern.MULTILINE
  • Pattern.DOTALL
  • Pattern.UNICODE_CASE
  • Pattern.CANON_EQ
得到matcher对象

封装数据源后得到Matcher类的一个对象

Matcher matcher= pattern.matcher(dataSource);

检索数据

matcher可以依次调用boolean find()方法检索数据源中和regex匹配的子字符序列

首次调用find()方法将检索第一个good,检索到后将返回true

检索到时,可使用matcher.start()返回good的开始位置(这里是6)(从零开始计);可使用matcher.end()返回序列的结束位置(这里是10)(结束后的下一位);可使用matcher.group()返回检索到的字符串(这里是good)

Matcher类提供的常用方法

  • boolean find():上面已经解释

  • boolean matches():判断数据源是不是完全和正则表达式匹配

  • boolean lookingAt():判断数据源的头部是否有和正则表达式匹配的子序列。

    如:数据源是"goods",返回true;数据源是"hgood",返回false。若返回true,可以和find()一样调用start()、end()、group()返回相应的值

  • boolean find(int start):从指定位置开始检索,若start=0;该方法和lookingAt()相同

  • String replaceAll(String replacement):将检索到的序列全部换成replacement的实体,但这是新的String对象,数据源并没有改变

  • String replaceFirst(String replacement):只替换检索到的第一个序列,同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EEEzhenliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值