Це може бути тупе запитання, але я ніде не міг його знайти:
Як я можу використовувати оператор регулярного виразу java АБО (|) без дужок?
наприклад: Тел. | Телефон | Факс
Це може бути тупе запитання, але я ніде не міг його знайти:
Як я можу використовувати оператор регулярного виразу java АБО (|) без дужок?
наприклад: Тел. | Телефон | Факс
Відповіді:
Ви можете просто використовувати трубу самостійно:
"string1|string2"
наприклад:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Вихід:
blah, blah, string3
Основною причиною використання дужок є обмеження обсягу альтернатив:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
має однаковий вихід. але якщо ви просто зробите це:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
ти отримуєш:
blah, stringblah, string3
тому що ви сказали "string1" або "2".
Якщо ви не хочете фіксувати цю частину виразу, використовуйте ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));