Esto puede ser una pregunta tonta, pero no podía encontrar en cualquier lugar:Java expresión regular operador OR
¿Cómo puedo utilizar el operador de Java o expresión regular (|) sin paréntesis?
por ejemplo: Tel | Teléfono | Fax
Esto puede ser una pregunta tonta, pero no podía encontrar en cualquier lugar:Java expresión regular operador OR
¿Cómo puedo utilizar el operador de Java o expresión regular (|) sin paréntesis?
por ejemplo: Tel | Teléfono | Fax
Usted sólo puede utilizar el tubo por su propia cuenta:
"string1|string2"
por ejemplo:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Salida:
blah, blah, string3
El 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 usted acaba de hacer esto:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
que se obtiene:
blah, stringblah, string3
debido a que has dicho "texto1" o "2".
Si no desea capturar esa parte de la expresión utilizar ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));
¿Qué sucede si necesito delimitar estas cadenas de otras partes de la expresión regular que también son cadenas? p.ej. eee (ff | gg) eee ¿Tengo que usar paréntesis? –
Ah, no importa. Tu actualización lo corrige. El último ejemplo es lo que estaba buscando. ¡Gracias! –
se ve bien, ¿qué problema tiene? – danben
sí, debería funcionar. Cletus, Danben y yo estamos de acuerdo. también, @danben - mi nombre es Dan Beam, jaja, ¡tan cerca! –