Dies mag eine dumme Frage sein, aber ich konnte sie nirgendwo finden:
Wie kann ich den Operator für Java ODER reguläre Ausdrücke (|) ohne Klammern verwenden?
zB: Tel | Telefon | Fax
Dies mag eine dumme Frage sein, aber ich konnte sie nirgendwo finden:
Wie kann ich den Operator für Java ODER reguläre Ausdrücke (|) ohne Klammern verwenden?
zB: Tel | Telefon | Fax
Antworten:
Sie können das Rohr einfach alleine verwenden:
"string1|string2"
beispielsweise:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Ausgabe:
blah, blah, string3
Der Hauptgrund für die Verwendung von Klammern besteht darin, den Umfang der Alternativen einzuschränken:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
hat den gleichen Ausgang. aber wenn Sie dies nur tun:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
du erhältst:
blah, stringblah, string3
weil du "string1" oder "2" gesagt hast.
Wenn Sie diesen Teil des Ausdrucks nicht erfassen möchten, verwenden Sie ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));