Регулярное выражение или оператор 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"));