Why does replaceAll fail with “illegal group reference”?

前端 未结 8 1551
轻奢々
轻奢々 2020-12-01 09:56

I am in need to replace

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

I used

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


        
8条回答
  •  离开以前
    2020-12-01 10:55

    Use "\\$\\$" in the second parameter:

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

    The $ is group symbol in regex's replacement parameter

    So you need to escape it

提交回复
热议问题