Вы можете просто использовать трубу самостоятельно:
"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"));