Ini mungkin pertanyaan yang bodoh, tetapi saya tidak dapat menemukannya di mana pun:
Bagaimana cara menggunakan java OR operator ekspresi reguler (|) tanpa tanda kurung?
misalnya: Tel | Telepon | Faks
Ini mungkin pertanyaan yang bodoh, tetapi saya tidak dapat menemukannya di mana pun:
Bagaimana cara menggunakan java OR operator ekspresi reguler (|) tanpa tanda kurung?
misalnya: Tel | Telepon | Faks
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:
blah, blah, string3
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:
blah, stringblah, string3
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"));