Java String: заменить строку, содержащую знак $ - PullRequest
3 голосов
/ 27 декабря 2010

Как заменить строку $1 в Java? Я попробовал это, но это не заменит это:

System.out.println(someHTMLCodeAsString.replaceAll("$1", "REPLACED"));

Ответы [ 6 ]

6 голосов
/ 27 декабря 2010

$ интерпретируется как регулярное выражение, а не как символ (это означает «конец строки»). Попробуйте System.out.println(someHTMLCodeAsString.replaceAll("\\$1", "REPLACED"));

3 голосов
/ 27 декабря 2010

попробуй

 System.out.println(someHTMLCodeAsString.replace("$1", "REPLACED"));
0 голосов
/ 15 января 2013

Вы можете просто использовать этот метод:

someHTMLCodeAsString.replaceAll("\\$1", "REPLACED").

, которые просто заменяют все "$" на "ЗАМЕНЕНО"!

0 голосов
/ 27 декабря 2010

Или, пусть библиотека regex обработает это для вас:

someHTMLCodeAsString.replaceAll(Pattern.quote("$1"), "REPLACED")
0 голосов
/ 27 декабря 2010

Вы получили частички ответа.Питер Лори прав.Вы должны экранировать $ с помощью экранирования регулярного выражения, а не экранирования строки, поэтому двойной \.

System.out.println (someHTMLCodeAsString.replaceAll ("\\ $ 1", "REPLACED"));

0 голосов
/ 27 декабря 2010

Из Документы Java API : "Обратите внимание, что обратная косая черта () и знаки доллара ($) в строке замены могут привести к тому, что результаты будут отличаться отесли он обрабатывался как буквенная замещающая строка; см. Matcher.replaceAll. Используйте Matcher.quoteReplacement (java.lang.String), чтобы при желании подавить специальное значение этих символов. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...