Я использую Matcher.appendReplacement () , и он работал прекрасно, пока в моей строке замены не было $ 2:
Обратите внимание, что обратная косая черта (\) и доллар
знаки ($) в строке замены
может привести к разным результатам
чем если бы это рассматривалось как
буквенная замена строки. доллар
знаки могут рассматриваться как ссылки на
захваченные подпоследовательности, как описано
выше, а обратные слеши используются для
избежать буквальных символов в
строка замены.
Есть ли где-нибудь удобный метод, который позволит избежать обратной косой черты \ и знака доллара $ с обратной косой чертой? Или я должен написать один сам? Похоже, это не так сложно, просто было бы неплохо, если бы они дали вам один>: (* 1009 *
edit: , поскольку они дают вам один, мне нужно replace(">:(", ":-)");