To może być głupie pytanie, ale nie mogłem go nigdzie znaleźć:
Jak mogę użyć operatora wyrażenia regularnego java OR (|) bez nawiasów?
np .: Tel | Telefon | Faks
To może być głupie pytanie, ale nie mogłem go nigdzie znaleźć:
Jak mogę użyć operatora wyrażenia regularnego java OR (|) bez nawiasów?
np .: Tel | Telefon | Faks
Odpowiedzi:
Możesz po prostu użyć samej rury:
"string1|string2"
na przykład:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Wynik:
blah, blah, string3
Głównym powodem używania nawiasów jest ograniczenie zakresu alternatyw:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
ma ten sam wynik. ale jeśli po prostu to zrobisz:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
dostajesz:
blah, stringblah, string3
ponieważ powiedziałeś „ciąg1” lub „2”.
Jeśli nie chcesz przechwytywać tej części wyrażenia, użyj ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));