2010-12-26 12 views
2

Javaの "String" $1をどのように置き換えることができますか?私はこれを試してみましたが、これは、それに代わるものではありません。Java文字列:文字列を置換する

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

$を\\ $;でエスケープする必要があります)、$は文字列の最後を意味し、後には何も付けることはできません。 –

答えて

6

を試してみてください。 Java API docsからSystem.out.println(someHTMLCodeAsString.replaceAll("\\$1", "REPLACED"));

+0

ありがとう、私はすでに '\'を設定しようとしましたが、 '\\'が必要であることを忘れています... – Poru

3

は(それは「行の終わり」を意味します)$は正規表現として代わりの文字として解釈されている

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

をお試しください: 「置換文字列内のバックスラッシュ()とドル記号($)結果は、それがリテラル置換文字列として扱われていた場合と異なることを引き起こす可能性があることに注意してください。参照Matcher.replaceAll。Matcher.quoteReplacement(java.lang.String)を使用して、必要に応じてこれらの文字の特殊な意味を抑制します。

0

あなたは少しの反応を得ました。ピーターローリーは正しいです。文字列エスケープではなく正規表現でエスケープして$をエスケープする必要があります。

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

+0

他の人が同じ問題を2つのエスケープを必要とするstackoverflowで終了しました\\\\作る \\。だから彼は+1に値する。 –

0

または、正規表現ライブラリがあなたのためにそれを処理してみましょう:

someHTMLCodeAsString.replaceAll(Pattern.quote("$1"), "REPLACED") 
0

あなたは、単にこのメソッドを使用できます:

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

単に "REPLACED" へのすべての "$" を交換してください!