Questa potrebbe essere una domanda stupida, ma non sono riuscita a trovarla da nessuna parte:
Come posso utilizzare l'operatore java OR di espressione regolare (|) senza parentesi?
es: Tel | Telefono | Fax
Questa potrebbe essere una domanda stupida, ma non sono riuscita a trovarla da nessuna parte:
Come posso utilizzare l'operatore java OR di espressione regolare (|) senza parentesi?
es: Tel | Telefono | Fax
Risposte:
Puoi semplicemente usare il tubo da solo:
"string1|string2"
per esempio:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Produzione:
blah, blah, string3
Il motivo principale per utilizzare le parentesi è limitare la portata delle alternative:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
ha lo stesso output. ma se fai solo questo:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
ottieni:
blah, stringblah, string3
perché hai detto "stringa1" o "2".
Se non vuoi catturare quella parte dell'espressione usa ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));