• ベストアンサー

PatternSyntaxException

こんにちは。 ある文字列の\マークを/に置き換えるために、 Pattern p = Pattern.compile("\\"); Matcher m = p.matcher("文字列"); String replaced = m.replaceAll("/"); としているのですが、 1行目でなぜかPatternSyntaxExceptionがスローされます。何かおかしいのでしょうか? ちなみにEclipseを用いてコーディングしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

Pattern p = Pattern.compile("\\\\"); としてください。 正規表現で\\を指定すると、バックスラッシュになりますが、このためには、\\(\2文字)が必要です。 ここで、Pattern.compile("\\"); は \1文字になりますので、期待した結果となりません。従って"\\\\"とすることにより、\\(\2文字)が作成され、期待した結果となります。

mikimiki777
質問者

お礼

ありがとうございました。 \\\\で無事できました。

関連するQ&A