日期:2014-05-20  浏览次数:20777 次

一个说于replaceAll替换"\n"的问题??
String   str   =   "1\n2 ";

System.out.println(str.replaceAll( "\n ", "-- "));

System.out.println(str.replaceAll( "\\n ", "-- "));

System.out.println(str.replaceAll( "\\\n ", "-- "));

上面3个语句都能替换掉 "\n ",前2个我还能想的通,就第三个我怎么也想不通,如果说 "\\\n ",到正则表达式为 "\\n ",那么 "\\\\n "的正则表达式,启不不是和 "\\\n "一样,还请各位DX解释下下,谢谢了

------解决方案--------------------
Pattern p = Pattern.compile( "\\\ne ");
System.out.println( "pattern: "+p.pattern());

输出: pattern: \
e

而 1\n2表示的是 1 回车 2
难道是bug?
------解决方案--------------------
可能是因为 '\\ '匹配 '\ ',然后又是 '\\ '匹配 '\ ',最后剩下 '\n ',个人意见!