Javaの正規表現はエスケープする時にちょっと特殊なのでメモ。
正規表現の特殊文字をエスケープするには「¥」を使います。
たとえば「penta.」を「penta!!」に置換しようとた場合viなら「s/\./!!/」と書きます。が、Javaで同じように
"penta.".replaceAll("\.","!!");
とするとコンパイルエラーになります。これは「¥.」なんて文字ねーよとコンパイラが怒ってるから。なので
"penta.".replaceAll("\\.","!!");
と「\\」ってしてあげないと駄目。リテラルとしてのエスケープ+正規表現のエスケープで2回エスケープしてあげないとってこと。
「String.replace」は正規表現じゃないけど「String..replaceAll」と「String.replaceFirst」は内部が正規表現で比較されるので気をつけましょう。