Подтвердить что ты не робот

Оператор регулярного выражения Java OR

Это может быть глупый вопрос, но я ничего не мог найти:

Как я могу использовать оператор регулярного выражения java OR (|) без круглых скобок?

например:   Телефон | Телефон | Факс

4b9b3361

Ответ 1

Вы можете просто использовать трубу самостоятельно:

"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"));