2011-06-20 12 views

答えて

2

replaceAll第一引数と第二の置換文字列のための正規表現を取るの\ - あなたは、交換にバックスラッシュをエスケープする必要があります文字列およびがJavaコードに含まれています。

あなた必要正規表現は、単に正規表現を使用しない、代わりにString.replaceを使用しない限り:

String text = "a\\b\\c"; 
System.out.println(text); // Prints a\b\c 
String replaced = text.replace("\\", "x"); 
System.out.println(replaced); // Prints axbxc 
個人的に

私はそれを開始するために正規表現を使用するString.replaceAllため間違いのビットだったと思います

+0

厳密に言うと、replaceAllの2番目の引数は正規表現ではなく、[置換文字列]です(http://download.oracle.com/javase/6/docs/api/java/util/regex/ Matcher.html#replaceAll%28java.lang.String%29)。 – axtavt

+0

@axtavt:いいキャッチ。私はそれが第一の問題ではなく、問題を引き起こす第二の議論であることに気付かなかった。編集します。 –

+0

ありがとうございましたJon、私はCharSequenceがStringを実装していることに気がつきましたが、 'replace'はString paramaterを受け入れるとは思いませんでした。 –

0

文字列の扱い\\\として...(replacePatternが、少なくともそれがより明確ただろう)が、それは今変更することが手遅れで、残念ながら正規表現は、あなたがを必要とするようにもありません:|

関連する問題