ホームページ > Java > &#&チュートリアル > 「replaceAll」と「replace」を使用してJava文字列のバックスラッシュを適切にエスケープする方法は?

「replaceAll」と「replace」を使用してJava文字列のバックスラッシュを適切にエスケープする方法は?

DDD
リリース: 2024-11-27 12:14:10
オリジナル
475 人が閲覧しました

How to Properly Escape Backslashes in Java Strings using `replaceAll` and `replace`?

replaceAll を使用して文字列内のバックスラッシュをエスケープする

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート