Как заменить строку $1 в Java? Я попробовал это, но это не заменит это:
$1
System.out.println(someHTMLCodeAsString.replaceAll("$1", "REPLACED"));
$ интерпретируется как регулярное выражение, а не как символ (это означает «конец строки»). Попробуйте System.out.println(someHTMLCodeAsString.replaceAll("\\$1", "REPLACED"));
System.out.println(someHTMLCodeAsString.replaceAll("\\$1", "REPLACED"));
попробуй
System.out.println(someHTMLCodeAsString.replace("$1", "REPLACED"));
Вы можете просто использовать этот метод:
someHTMLCodeAsString.replaceAll("\\$1", "REPLACED").
, которые просто заменяют все "$" на "ЗАМЕНЕНО"!
Или, пусть библиотека regex обработает это для вас:
someHTMLCodeAsString.replaceAll(Pattern.quote("$1"), "REPLACED")
Вы получили частички ответа.Питер Лори прав.Вы должны экранировать $ с помощью экранирования регулярного выражения, а не экранирования строки, поэтому двойной \.
System.out.println (someHTMLCodeAsString.replaceAll ("\\ $ 1", "REPLACED"));
Из Документы Java API : "Обратите внимание, что обратная косая черта () и знаки доллара ($) в строке замены могут привести к тому, что результаты будут отличаться отесли он обрабатывался как буквенная замещающая строка; см. Matcher.replaceAll. Используйте Matcher.quoteReplacement (java.lang.String), чтобы при желании подавить специальное значение этих символов. "