String str = "55555 ${asdf},66666!";
System.out.println(str.replaceAll("\\$\\{.*\\}", "444444"));上面两个\\是什么意思???????????????

解决方案 »

  1.   

    \$\{.*\}两个\\会转换成一个\,因为在java里\是转义字符
      

  2.   

    因为$、{、}这三个字符在正则表达式中属于有意义的字符,像$在正则中并不表示“$”而是表示“行尾”,
    所以要在正则表达式中匹配字符“$”的话,就需要要加上正则的转义字符“\”,变成\$,但是\在Java中
    也属于特殊的字符,所以在Java要表示“\”的话,需要使用“\\”,所以就成了“\\$”了,不知道你明白
    了吗?嘿嘿,这好像是我在某个帖中的回复诶~~