Rumah > Java > javaTutorial > Bagaimana untuk Meloloskan Garis Garis Terbalik dengan Benar dalam Rentetan Java menggunakan `replaceAll` dan `replace`?

Bagaimana untuk Meloloskan Garis Garis Terbalik dengan Benar dalam Rentetan Java menggunakan `replaceAll` dan `replace`?

DDD
Lepaskan: 2024-11-27 12:14:10
asal
532 orang telah melayarinya

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

Melepaskan Garis Segaris Belakang dalam Rentetan menggunakan replaceAll

Mencuba untuk menukar Rentetan "sesuatu" kepada "sesuatu" menggunakan String#replaceAll() bermasalah kerana peranan dwi watak sebagai watak melarikan diri dalam kedua-dua rentetan dan biasa ungkapan.

Menggunakan ungkapan string.replaceAll("", "\") menghasilkan ralat "java.util.regex.PatternSyntaxException: Ralat dalaman yang tidak dijangka berhampiran indeks 1". Ini kerana ungkapan biasa menafsirkan yang pertama sebagai aksara melarikan diri untuk yang kedua .

Penyelesaian 1: Melarikan Diri Berganda Menggunakan Regex

Untuk melarikan diri daripada aksara dalam ungkapan biasa , ia mesti dilarikan dua kali. Ungkapan yang betul ialah:

string.replaceAll("\\", "\\\\");
Salin selepas log masuk

Penyelesaian 2: Penggantian Aksara demi Aksara Menggunakan ganti

Jika penggantian aksara demi aksara yang tepat dikehendaki, ungkapan biasa tidak perlu. Kaedah String#replace() boleh digunakan sebaliknya:

string.replace("\", "\\");
Salin selepas log masuk

Nota Tambahan: Melarikan diri untuk JavaScript

Jika rentetan bertujuan untuk digunakan dalam JavaScript konteks, kaedah StringEscapeUtils#escapeEcmaScript() disyorkan untuk merangkumi julat yang lebih luas aksara melarikan diri.

Atas ialah kandungan terperinci Bagaimana untuk Meloloskan Garis Garis Terbalik dengan Benar dalam Rentetan Java menggunakan `replaceAll` dan `replace`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan