Esta puede ser una pregunta tonta, pero no pude encontrarla en ningún lado:
¿Cómo puedo usar el operador de expresión regular de Java OR (|) sin paréntesis?
por ejemplo: Tel | Phone | Fax
Esta puede ser una pregunta tonta, pero no pude encontrarla en ningún lado:
¿Cómo puedo usar el operador de expresión regular de Java OR (|) sin paréntesis?
por ejemplo: Tel | Phone | Fax
Respuestas:
Puedes usar la tubería por sí sola:
"string1|string2"
por ejemplo:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Salida:
blah, blah, string3
La razón principal para usar paréntesis es limitar el alcance de las alternativas:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
tiene la misma salida. pero si solo haces esto:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
usted obtiene:
blah, stringblah, string3
porque ha dicho "cadena1" o "2".
Si no desea capturar esa parte de la expresión, utilice ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));