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