JavaでStringクラスのreplaceAllとかmatchesメソッドで、”[“や”]”(大括弧)とマッチさせたい場合、普通に実行するとエラーになってしまう。
1.事象
以下のようなソースでは実行時にエラーとなる。
サンプルソースコード
String str = "ab[c]"; str.replaceAll("[", "");
エラー内容
java.util.regex.PatternSyntaxException: Unclosed character class near index 0
2.対応方法
バックスラッシュを2つ、”[“や”]”の前に付けることで対応することができる。
サンプルソースコード
String str = "ab[c]"; str.replaceAll("\\[", "");
コメント