Bu aptalca bir soru olabilir ama hiçbir yerde bulamadım:
Java VEYA normal ifade operatörünü (|) parantez olmadan nasıl kullanabilirim?
örneğin: Tel | Telefon | Faks
Bu aptalca bir soru olabilir ama hiçbir yerde bulamadım:
Java VEYA normal ifade operatörünü (|) parantez olmadan nasıl kullanabilirim?
örneğin: Tel | Telefon | Faks
Yanıtlar:
Boruyu kendi başına kullanabilirsiniz:
"string1|string2"
Örneğin:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Çıktı:
blah, blah, string3
Parantez kullanmanın ana nedeni, alternatiflerin kapsamını sınırlamaktır:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
aynı çıktıya sahiptir. ama sadece bunu yaparsan:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
alırsın:
blah, stringblah, string3
çünkü "dize1" veya "2" dediniz.
İfadenin o kısmını yakalamak istemiyorsanız şunu kullanın ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));