如何将matcher.quoteReplacement与appendTail一起用于具有$ as literal的字符串

时间:2016-08-05 13:19:13

标签: java regex

我有一个类似

的字符串
  

Hello $ 1 abc $ 1 $ 2 $ 3
     你好$ 1 abc $ 1 $ 2 $ 3
     你好$ 1 abc $ 1 $ 2 $ 3

如果我想搜索"您好。*? abc" 并将其替换为某物, 我正在使用 matcher.appendReplacement(sb,Matcher.quoteReplacement(s)); 但是,我如何使用相同的appendTail()方法?

Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE+Pattern.DOTALL );
Matcher m = p.matcher(str);
String sub;
StringBuffer sb = new StringBuffer();
while(m.find()){
    String s = m.group();   
    s = s.replaceAll(replaceTagpattern, replaceWithTagpattern);
    m.appendReplacement(sb, Matcher.quoteReplacement(s));
}
m.appendTail(sb);

编辑:

预期产出:

  $ p $ $ $ $ 3 $      东西$ 1 $ 2 $ 3
     $ 1 $ 2 $ 3

0 个答案:

没有答案