2010-11-30 3 views
76

Я бы хотел заменить все экземпляры подстроки в строке, но String.replaceAll() принимает только шаблон. Строка, полученная мной из предыдущего совпадения. Можно ли добавить escapes к шаблону, который у меня есть, или есть версия replaceAll() в другом классе, который принимает буквенную строку вместо шаблона?String.replaceAll без RegEx

+0

Возможный дубликат [Проблема с обратной косой чертой со String.replaceAll] (http://stackoverflow.com/questions/1701839/backslash-problem-with-string-replaceall) – McDowell 2011-05-26 08:40:50

ответ

78

Метод добавления побегов - Pattern.quote().

String replaced = myString.replaceAll(Pattern.quote(matchingStr), replacementStr) 

Но, как говорит Джон, вы можете просто использовать replace(). Несмотря на то, что он отклоняется от имени replaceAll, он заменяет все вхождений точно так же, как replaceAll().

+0

Отлично работает, если у вас есть «$» в вашем matchStr для пример. – 2015-07-16 09:29:10

Смежные вопросы