C'est peut-être une question idiote, mais je ne pouvais la trouver nulle part:
Comment utiliser l'opérateur Java OR) d'expression régulière (|) sans parenthèses?
par exemple: Tel | Téléphone | Fax
Vous pouvez simplement utiliser le tuyau seul:
"string1|string2"
par exemple:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Sortie:
blah, blah, string3
La principale raison d'utiliser des parenthèses est de limiter la portée des alternatives:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
a la même sortie. mais si vous faites juste ceci:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
vous recevez:
blah, stringblah, string3
parce que vous avez dit "string1" ou "2".
Si vous ne voulez pas capturer cette partie de l'expression, utilisez ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));