文字列内の 1 つのバックスラッシュを 2 つのバックスラッシュに置き換える
replaceAll を使用して「\something\」のような文字列を「\」に変換しようとしたとき何か」を実行すると、開発者はエラーに遭遇することがよくあります。 replaceAll("\", "\\") メソッドを使用する一般的な方法では、例外「java.util.regex.PatternSyntaxException: インデックス 1 付近で予期しない内部エラーが発生しました」が発生します。これは、バックスラッシュ () 文字が文字列と正規表現の両方でエスケープ文字として扱われるために発生します。これに対処するには、正規表現内のバックスラッシュを 2 つ重ねてエスケープします:
string.replaceAll("\\\\", "\\\\\\\\");
ただし、ここでは正規表現が必ずしも必要というわけではありません。文字ごとの置換を実行したいだけなので、 String#replace() で十分です:
string.replace("\\", "\\\\");
文字列が JavaScript コンテキストでの使用を目的としている場合は、より広範囲の文字をカバーするために StringEscapeUtils#escapeEcmaScript() を使用する方が適している可能性があることに注意してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3