博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matcher类详解
阅读量:6247 次
发布时间:2019-06-22

本文共 1474 字,大约阅读时间需要 4 分钟。

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 

它包括两个类:Pattern和Matcher 。

Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。 

Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。

首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。 

 

Pattern p = Pattern.compile("cat");Matcher m = p.matcher("one cat two cats in the yard");//输入序列StringBuffer sb = new StringBuffer();while (m.find()) {    System.out.println("以前匹配的初始索引---" + m.start());    System.out.println("最后匹配位置的索引---" + m.end());    m.appendReplacement(sb, "dog");//第一次匹配后添加位置变为8,第二次匹配后添加位置变为16    System.out.println("sb="+sb);}m.appendTail(sb);//System.out.println(sb.toString());-------------------------输出---------------------------------------------------------------------以前匹配的初始索引---4最后匹配位置的索引---7sb=one dog以前匹配的初始索引---12最后匹配位置的索引---15sb=one dog two dogone dog two dogs in the yard

  

1. public  appendReplacement( sb,  replacement)   sb -- 字符串缓冲区   replacement -- 替换字符串
该方法做3件事:
1. 它从添加位置开始在输入序列读取字符,并将其添加到给定字符串缓冲区。 在读取以前匹配之前的最后字符(即位于索引 start() - 1 处的字符)之后,它就会停止。 即将匹配字符串之前的所有字符添加到缓冲区。2. 它将给定替换字符串添加到字符串缓冲区。 即将replacement添加到缓冲区。3. 它将此匹配器的添加位置设置为最后匹配位置的索引加 1,即 end()。进行下一次匹配。

注:字符串缓冲区会已记录一个添加位置,从0开始。做完以上3件事以后,字符串缓冲区的添加位置设置为最后匹配位置的索引加1即匹配到的字符串结束位置加1.

  2.  public appendTail( sb)

    sb -- 目标字符串缓冲区

此方法从添加位置开始从输入序列读取字符,并将其添加到给定字符串缓冲区。可以在一次或多次调用 appendReplacement 方法后调用它来复制剩余的输入序列。

注:appendReplacement替换完所有的字符串以后,输入序列的剩余字符从添加位置添加到字符串缓冲区。

转载于:https://www.cnblogs.com/happy-coder/p/4547405.html

你可能感兴趣的文章
改善用户体验的药方
查看>>
Kubernetes审计日志方案
查看>>
容器安全拾遗 - Rootless Container初探
查看>>
ERROR 2002 (HY000) Can’t connect to local MySQL server through socket ‘var mysql 启动不了
查看>>
数据库SQL优化大总结之 百万级数据库优化方案
查看>>
mysql unrecognized service问题解决
查看>>
手把手教你最简单的开源项目托管GitHub入门教程
查看>>
使用VideoView自定义一个播放器控件
查看>>
VXLAN大二层实现穿越互联网通过DHCP服务器获取IP地址
查看>>
网站加载不了 图片
查看>>
u盘安装ubuntu12.04LTS及手动下载安装eclipse
查看>>
sqlserver2000系统表sysproperties在SQL2008中无效的问题
查看>>
关系数据库常用SQL语句语法大全
查看>>
对mybastis 的理解2--BaseDao接口方法声明
查看>>
我的友情链接
查看>>
活动目录相关的面试题(上)
查看>>
Slackware64安装32位库和rtx
查看>>
MVC3----AJAX辅助方法
查看>>
windows 2012添加桌面图标
查看>>
maven 下载 源码和javadoc命令
查看>>