String.replaceAll  正则表达式 把"替换为\"

解决方案 »

  1.   

    我写的是content.replaceAll("\\\"", "\\\\\\\"");
    但是不对啊
      

  2.   

    public class Test {
        public static void main(String[] args) {
            String str = "abc\"abc";
            System.out.println(str);
            
            String str1 = str.replace("\"", "\\\"");
            System.out.println(str1);
            
            String str2 = str.replaceAll("\"", "\\\\\"");
            System.out.println(str2);
        }
    }
      

  3.   

    是我搞错了 那个写法是对的
    String newContent = content.replaceAll("\\\"", "\\\\\\\"");
    我看得是老的,应该看newContent 的
      

  4.   

    建议,如果不需要采用很复杂的替换,不要去采用replaceAll方法(这个方法是
    采用正则表达式来替换的),而应采用普通字符串的替换方法:replace。String str2 = str.replaceAll("\"", "\\\\\"");由于,“\”在Java和正则表达式中都是转义字符,正则表达式中表示一个“\”,
    也得使用“\\”,而Java中表示一个“\”得使用“\\”,所以表示正则表达式中
    的一个字符“\”,在Java中要使用“\\\\”。
      

  5.   

    String newContent = content.replaceAll("\\\"", "\\\\\\\"");“"”在正则表达式中不是特殊字符,没有必须使用那么多“\”的。