Это может быть глупый вопрос, но я нигде его не нашел:
Как я могу использовать оператор регулярного выражения OR (|) в Java без скобок?
например: Тел | Телефон | Факс
Это может быть глупый вопрос, но я нигде его не нашел:
Как я могу использовать оператор регулярного выражения OR (|) в 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
потому что вы сказали "строка1" или "2".
Если вы не хотите фиксировать эту часть выражения, используйте ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));