これはばかげた質問かもしれませんが、どこにも見つかりませんでした。
括弧なしでJavaまたは正規表現演算子(|)を使用するにはどうすればよいですか?
例:Tel | Phone | Fax
回答:
パイプを単独で使用できます。
"string1|string2"
例えば:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
出力:
blah, blah, string3
括弧を使用する主な理由は、選択肢の範囲を制限することです。
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
同じ出力があります。しかし、これを行うだけの場合:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
あなたが得る:
blah, stringblah, string3
「string1」または「2」と言ったからです。
式のその部分をキャプチャしたくない場合は、次を使用します?:
。
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));