dポイントプレゼントキャンペーン実施中!

こんにちは。
ある文字列の\マークを/に置き換えるために、

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

A 回答 (1件)

Pattern p = Pattern.compile("\\\\");


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

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

お礼日時:2005/06/12 20:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!