String#replaceAll() を使用して文字列「something」を「something」に変換しようとしていますこの文字は文字列と通常の文字列の両方でエスケープ文字としての二重の役割を果たしているため、問題があります。式.
式 string.replaceAll("", "\") を適用すると、エラー「java.util.regex.PatternSyntaxException: インデックス 1 付近で予期しない内部エラーが発生しました」が発生します。これは、正規表現が最初の文字を 2 番目のエスケープ文字として解釈するためです。
解決策 1: Regex を使用した二重エスケープ
正規表現で文字をエスケープするには、二重エスケープする必要があります。正しい表現は次のとおりです。
string.replaceAll("\\", "\\\\");
解決策 2: replace を使用した文字ごとの置換
正確な文字ごとの置換が必要な場合は、正規表現を使用します。は必要ありません。代わりに String#replace() メソッドを使用できます。
string.replace("\", "\\");
補足: JavaScript のエスケープ
文字列が JavaScript で使用されることを目的としている場合コンテキストでは、より広範囲のエスケープ文字をカバーするために StringEscapeUtils#escapeEcmaScript() メソッドをお勧めします。
以上が「replaceAll」と「replace」を使用してJava文字列のバックスラッシュを適切にエスケープする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。