1. ホーム
  2. java

replaceAllで "unlagative group reference "で失敗するのはなぜですか?

2023-08-30 10:25:52

質問

私は、以下のものを交換する必要があります。

\\\s+\\$\\$ to $$

を使いました。

String s = "  $$";
s = s.replaceAll("\\s+\\$\\$","$$");

しかし、例外が発生します。

java.lang.IllegalArgumentException: 不正なグループ参照

どのように解決するのですか?

使用方法 "\\$\\$" を2番目のパラメータで使用します。

String s="  $$";
s=s.replaceAll("\\s+\\$\\$","\\$\\$");
//or
//s=s.replaceAll("\\s+\\Q$$\\E","\\$\\$");

$ は正規表現の置換パラメータのグループ記号です。

なので、これをエスケープする必要があります。