文字列内の単一のバックスラッシュを二重のバックスラッシュに置換する
replaceAll を使用して「something」のような文字列を「something」に変換しようとすると、開発者はエラーに遭遇することがよくあります。 replaceAll("", "\") メソッドを使用する一般的な方法では、例外「java.util.regex.PatternSyntaxException: インデックス 1 付近で予期しない内部エラーが発生しました」が発生します。これは、バックスラッシュ () 文字が文字列と正規表現の両方でエスケープ文字として扱われるために発生します。これに対処するには、正規表現内のバックスラッシュを 2 つ重ねてエスケープします。
string.replaceAll("\\", "\\\\");
ただし、ここでは正規表現が必ずしも必要というわけではありません。文字ごとの置換を実行したいだけであるため、String#replace() で十分です。
string.replace("\", "\\");
文字列が JavaScript コンテキストでの使用を目的としている場合は、さらに多くの場合があることに注意してください。より広範囲の文字をカバーするために StringEscapeUtils#escapeEcmaScript() を使用するのに適しています。
以上がJava文字列内の単一のバックスラッシュを二重のバックスラッシュに適切に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。