java正则表达式appendReplacement和appendTail方法【正则替换内容】

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方法【正则替换内容】 的全部内容, 来源链接: utcz.com/z/516388.html






![正则表达式中 [\s\S]* 什么意思 居然能匹配所有字符 [] 不是范围描述符吗?](/wp-content/uploads/thumbs/270159_thumbnail.jpg)

