appendReplacement是java中替换相应字符串的一个方法

appendReplacement(StringBuffer sb,String replacement)

将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个 StringBuffer 对象里

appendTail(StringBuffer sb)

将最后一次匹配工作后剩余的字符串添加到一个 StringBuffer 对象里

如果没有理解的话,那就来一个简单的demo吧

public class TheReplacements {
public static void main(String[] args) throws Exception {
// 生成 Pattern 对象并且编译一个简单的正则表达式"cat"
Pattern p = Pattern.compile("cat");
// 用 Pattern 类的 matcher() 方法生成一个 Matcher 对象
Matcher m = p.matcher("fatcatfatcatfat");
StringBuffer sb = new StringBuffer();
while(m.find()){
//此时sb为fatdogfatdog,cat被替换为dog,并且将最后匹配到之前的子串都添加到sb对象中
m.appendReplacement(sb,"dog");
}
//此时sb为fatdogfatdogfat,将最后匹配到后面的子串添加到sb对象中
m.appendTail(sb);
//输出内容为fatdogfatdogfat
System.out.println("sb:"+sb);
}
}

注释已经够详细了,就不重复了

java正则表达式appendReplacement和appendTail方法的更多相关文章

  1. Java appendReplacement 和 appendTail 方法

    Matcher 类也提供了appendReplacement 和appendTail 方法用于文本替换: 看以下的样例来解释这个功能: import java.util.regex.Matcher; ...

  2. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  3. Java 正则表达式详解

    Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...

  4. 【转】java正则表达式

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...

  5. java正则表达式Pattern和Matcher

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

  6. JAVA 正则表达式 (超详细)

    (PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中 ...

  7. 转载:JAVA 正则表达式 (超详细)

    在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用Java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x ...

  8. JAVA正则表达式 Pattern和Matcher

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

  9. java正则表达式学习笔记

    Java 正则表达式语法 为了更有效的使用正则表达式,需要了解正则表达式语法.正则表达式语法很复杂,可以写出非常高级的表达式.只有通过大量的练习才能掌握这些语法规则. 本篇文字,我们将通过例子了解正则 ...

随机推荐

  1. flask 定义数据库关系(多对多)

    多对多 我们使用学生和老师来演示多对多关系:每个学生有多个老师,每个老师有多个学生.多对多关系示意图如下: 在实例程序中,Student类表示学生,Teacher类表示老师.在这两个模型之间建立多对多 ...

  2. The Code analysis of the FFDNet model

    1. 读取图像并判断是否为灰度图,如为RGB图转化为灰度图,并读取图像的w.h 2.数据格式转换:将uint8表示的读取图像矩阵变为double表示. 3.加入噪声,如果噪声水平$\sigma = 5 ...

  3. Linux系统命令 3

    1.vmstat命令监控系统资源[root@localhost ~]#vmstat [刷新延时 刷新次数] 例如:[root@localhost proc]#vmstat 1 3 2.dmesg开机时 ...

  4. PHP 订单延时处理:延迟队列(未鉴定)

    PHP 订单延时处理:延迟队列: https://github.com/chenlinzhong/php-delayqueue

  5. elasticsearch best_fields most_fields cross_fields从内在实现看区别——本质就是前两者是以field为中心,后者是词条为中心

    1.最佳字段(Best fields):: 假设我们有一个让用户搜索博客文章的网站(允许多字段搜索,最佳字段查询),就像这两份文档一样: PUT /my_index/my_type/1 { " ...

  6. Vue基础进阶 之 自定义指令

    自定义指令-----钩子函数 自定义指令 除了内置指令,Vue也允许用户自定义指令: 注册指令:通过全局API Vue.directive可以注册自定义指令: 自定义指令的钩子函数: bind: in ...

  7. Docker Compose 介绍安装

    Compose介绍 Compose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,biubiu使用什么镜像 ...

  8. Weighted Quick Union

    Weighted Quick Union即: 在Quick Union的基础上对结点加权(weighted),在parent[i]基础上增加一个size[i]. 用来存储该结点(site)的所有子结点 ...

  9. Redis 分布式缓存 Java 框架

    为什么要在 Java 分布式应用程序中使用缓存? 在提高应用程序速度和性能上,每一毫秒都很重要.根据谷歌的一项研究,假如一个网站在3秒钟或更短时间内没有加载成功,会有 53% 的手机用户会离开. 缓存 ...

  10. CEF 右键添加开发者选项菜单项

    在项目开发过程中,有时候需要进行调试测试,然后我们可以在cef上下文菜单中添加自定义开发者工具菜单项,这样会比较方便,最后效果: 实现过程: 让自己的MyClientHandler来继承 CefCon ...