Оператор регулярного выражения Java OR Это может быть глупый вопрос, но я ничего не мог найти: Как я могу использовать оператор регулярного выражения java OR (|) без круглых скобок? например: Телефон | Телефон | Факс Ответ 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"));
Ответ 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"));