1. ホーム
  2. 例外処理ソリューション

(java exception) java.util.regex.PatternSyntaxException: インデックス0付近のメタ文字'+'がぶらぶらしている

2022-03-01 12:24:13
<パス
public static void main(String[] args) throws Exception {
		String test = "-1+-2.3-2+-2";
		test = test.replaceAll("+-", "-");
		System.out.println(test);
		}


このスニペットは、式中の "±" をすべて "-" に置き換えようとしているため、次のような例外が発生します。

正規表現 "+" は {1,} の特殊記号、量詞なので、 "+" という文字にマッチするには、 "\+", java to "\+" をエスケープする必要があります。
プログラムは読み取ります。

public static void main(String[] args) throws Exception {
		String test = "-1+-2.3-2+-2";
		test = test.replaceAll("\\\+-", "-");
		System.out.println(test);
		}


結果

また、このような特殊記号は ? * () [] {} ^ $ など。