Pode ser uma pergunta idiota, mas não consegui encontrar em lugar nenhum:
Como posso usar o operador de expressão regular java OR (|) sem parênteses?
por exemplo: Tel | Telefone | Fax
Pode ser uma pergunta idiota, mas não consegui encontrar em lugar nenhum:
Como posso usar o operador de expressão regular java OR (|) sem parênteses?
por exemplo: Tel | Telefone | Fax
Respostas:
Você pode apenas usar o tubo sozinho:
"string1|string2"
por exemplo:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Resultado:
blah, blah, string3
A principal razão para usar parênteses é para limitar o escopo das alternativas:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
tem a mesma saída. mas se você apenas fizer isso:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
você obtém:
blah, stringblah, string3
porque você disse "string1" ou "2".
Se você não quiser capturar essa parte da expressão, use ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));