Bagaimana jika saya perlu membatasi string ini dari bagian regex lain yang juga merupakan string? mis. eee (ff | gg) eee Apakah saya harus menggunakan tanda kurung?
Eric Conner
Ah tidak apa-apa. Pembaruan Anda memperbaikinya. Contoh terakhir adalah apa yang saya cari. Terima kasih!
Jawaban:
Anda bisa menggunakan pipa itu sendiri:
"string1|string2"
sebagai contoh:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string1|string2", "blah"));
Keluaran:
Alasan utama menggunakan tanda kurung adalah untuk membatasi ruang lingkup alternatif:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string(1|2)", "blah"));
memiliki keluaran yang sama. tetapi jika Anda hanya melakukan ini:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string1|2", "blah"));
Anda mendapatkan:
karena Anda telah mengatakan "string1" atau "2".
Jika Anda tidak ingin menangkap bagian ekspresi tersebut, gunakan
?:
:String s = "string1, string2, string3"; System.out.println(s.replaceAll("string(?:1|2)", "blah"));
sumber