`
superior_lyh
  • 浏览: 4424 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

matcher.appendReplacement() 与 matcher.appendTail()的区别

    博客分类:
  • java
阅读更多

         matcher.appendReplacement() 与 matcher.appendTail()的区别

要说明这两个方法的区别最简单也最直接的方法就是上例子:

package com.it.test;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class regex_test2 {

 

public static void main(String args[]) {

String mail = "abcabcA@163.com";

Pattern pattern = Pattern.compile("a",Pattern.CASE_INSENSITIVE);

Matcher m = pattern.matcher(mail);

StringBuffer sb = new StringBuffer();

while(m.find())

m.appendReplacement(sb, "b");

//m.appendTail(sb); //注视掉这句的结果是bbcbbcb

System.out.println(sb.toString()); //不注释掉上句的结果是bbcbbcb@163.com

}

 

}

简单的讲讲,用matcher.appendReplacement( sb, "b")就是在Matcher.find()找到匹配的地方用“b”替换掉然后加进StringBuffer中去,这时后面可能还有字符串但是不匹配的,就像例子中@163.com是匹配到最后一个a结束的地方如果这时输出就是bbcbbcb。 matcher.appendTail()就是把@163.com加上而已

 

0
2
分享到:
评论

相关推荐

    java正则表达式替换字符串

    - **Matcher.appendReplacement(StringBuffer sb, String replacement)**:在非终止状态下,向StringBuffer中添加替换结果。 - **StringBuffer.appendTail(StringBuffer sb)**:在终止状态下,向StringBuffer中添加...

    java正则表达式过滤html标签

    5. **添加剩余文本**:使用`Matcher`对象的`appendTail()`方法将未被匹配的部分添加到结果中。 6. **返回结果**:返回过滤后的字符串。 #### 三、高级过滤 在实际应用中,可能还需要对某些特定的HTML标签进行更...

    将内容中的符合url格式的字符串转换为超链接(JAVA版)

    matcher.appendReplacement(result, hyperlink); } matcher.appendTail(result); return result.toString(); } } ``` 在上述代码中,我们首先编译了URL正则表达式,然后创建一个`Matcher`对象来在输入文本中...

    怎么利用Java正则表达式换模板

    如果模板中包含动态内容,可以使用预编译的正则表达式和`Matcher`的`appendReplacement()`和`appendTail()`方法,结合`StringBuilder`进行复杂替换。这种方式适用于替换过程涉及多个步骤或者需要在替换时执行额外...

    Java正则多字符串匹配替换

    3. **执行匹配和替换操作**:`Matcher`对象提供了多种方法来处理匹配,如`find()`用于查找匹配项,`appendReplacement()`和`appendTail()`用于替换匹配项,并将结果添加到`StringBuffer`中。例如: ```java ...

    过滤以<开头以>结尾的标签(txt 简写)

    Matcher类提供了与输入序列进行匹配的功能,它是通过调用Pattern对象的`matcher()`方法获得的。例如: ```java Matcher matcher = pattern.matcher(abc); ``` 接下来,我们可以使用Matcher对象来进行匹配操作。 #...

    2012androidQQ表情的实现

    matcher.appendReplacement(sb, "的表情资源ID'/&gt;"); } matcher.appendTail(sb); text = sb.toString(); ``` 3. **展示表情**:在界面上显示表情时,可以使用`TextView`配合自定义的`SpannableString`和`ImageSpan`...

    java web笔试题,很全

    matcher.appendTail(sb); System.out.println(sb.toString()); } } ``` 这段代码首先定义了一个正则表达式,用于匹配`[名称]{数值}`的模式,然后使用`Matcher`的`find`方法查找所有匹配项,并使用`...

    java正则表达式Pattern,Matcher

    ### Java正则表达式Pattern与Matcher详解 #### 一、Java正则表达式的概述 在Java编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能够帮助开发者进行复杂的字符串搜索和替换操作。Java...

    操作 compile 解析编译模式,第二个参数大小写是否敏感

    其中 `"input"` 是要与正则表达式进行匹配的字符串。`Matcher` 类提供了多种方法来检查匹配情况,如 `find`、`matches` 等。 #### 代码解析 根据提供的代码示例,我们可以看到以下几个关键点: 1. **Pattern 的...

    number-replacement:这只是一个简单的程序,您可以用单词替换数字

    matcher.appendReplacement(sb, word); } matcher.appendTail(sb); str = sb.toString(); ``` 此外,如果这个项目包含了一个`number-replacement-master`目录,通常意味着这是一个源码仓库,可能包含了项目的源...

    正则表达式

    而`appendReplacement()`和`appendTail()`方法则允许更复杂的替换逻辑,其中`appendReplacement()`会替换找到的匹配项,`appendTail()`则会添加未匹配的剩余文本。 #### 示例:简单的单词替换 下面的代码展示了...

    java代码-正则去除HTML代码中的SCRIPT标签

    `Matcher`对象的`find`方法遍历整个输入字符串,每次找到匹配项时,就调用`appendReplacement`将匹配的部分替换为空字符串,最后通过`appendTail`添加剩余的未匹配部分。 运行这个`main`方法,原始HTML字符串中的`...

    java_正则表达式pattern类Matcher类_(字符串匹配)

    通过`find()`循环查找并使用`appendReplacement()`将找到的"no"替换为"yes",最后用`appendTail()`添加剩余的未处理部分到`StringBuffer`,最终打印出替换后的字符串。 这些方法的组合使用使得在Java中进行复杂的...

    Java正则表达式的总结和一些小例

    `replaceAll(String replacement)`和`replaceFirst(String replacement)`分别用于替换所有和第一次匹配的部分,`appendReplacement(StringBuffer sb, String replacement)`和`appendTail(StringBuffer sb)`则用于在...

    【Java】将Markdown格式文本转换为纯文本

    matcher.appendReplacement(plainText, ""); } matcher.appendTail(plainText); return plainText.toString().replaceAll("\\s+", " ").trim(); // 去除多余空格并修剪两端 } public static void main...

    Java中级面试题

    ==与equals的区别** - `==`: 比较两个对象的内存地址是否相同,即判断它们是否指向同一个对象。 - `equals`: 用于比较两个对象的内容是否相等,通常需要重写该方法以提供自定义的比较逻辑。 **4. 什么是线程安全*...

Global site tag (gtag.js) - Google Analytics