Pourquoi ne replaceAll échouer avec “illégal groupe de référence”?

Je suis dans le besoin de remplacer

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

J'ai utilisé

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

mais il jette exception

java.lang.IllegalArgumentException: groupe Illégal de référence

  • J'ai de l'expérience exactement le même problème avec replaceFirst(). Les réponses ci-dessous vous aidera aussi.