Matcher. Как использовать спецсимвол в качестве replacement?
Всем привет, подскажите как через метод appendReplacement класса Matcher заменить найденную группу на спецсимвол? Например, здесь я пробую в качестве replacement передать строку "$$$".
Полный пример:
Pattern p = Pattern.compile("(qwe)");
Matcher m = p.matcher("qwerty");
StringBuilder b = new StringBuilder();
m.find();
m.appendReplacement(b, "$$$");
m.appendTail(b);
b.toString();
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Нужно экранировать символы $ в строке-замене при помощи обратного слэша \, который в свою очередь следует экранировать в строках путём удвоения:
Pattern p = Pattern.compile("(qwe)");
Matcher m = p.matcher("qwerty");
StringBuilder b = new StringBuilder();
m.find();
m.appendReplacement(b, "\\$\\$\\$");
m.appendTail(b);
System.out.println(b); // -> $$$rty