Java

【Java】正規表現のエスケープは2つ必要

JavaでPattern.matches()やString.ReplaceAll()などのメソッドで正規表現を使う場合、エスケープ文字は2つ必要。

まずJavaコンパイラーが判定する必要があるため、ひとつ多くなる。

以下は文字列が”/*”で始まるか判定する正規表現。

if(str.matches("^/\\*.*")){
  true;
}

一つ目の*(アスタリスク)は文字列として使いたいので、その直前に\(バックスラッシュ)を2つ挿入している。

二つ目の*(アスタリスク)は正規表現として使いたいので、\(バックスラッシュ)を使用していない。