私はこのコードを書きました:
public static void main(String args[]) throws Exception {
String template = "The user has spent amount in a day";
String pattern = "amount";
String output = template.replaceAll(pattern, "$ 100");
System.out.println(output);
}
これを実行すると、次のようになります。
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Matcher.java:713)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2190)
at demo.BugDemo.main(BugDemo.java:16)
Java Result: 1
ファイルからデータを読み取っています。$
ファイル データ内のすべてのシンボルをエスケープする必要がありますか、それとも不要なプロセスですか? この状況を処理する他のクラスまたはライブラリはありますか?
(正規表現ではなく) 置換テキストに特別な記号があることの問題は何ですか?
ノート:
エスケープするためにすべての文字をチェックしたくありません。それが私がこの質問をしている理由です。
私はJava 6を使用しています。