void Main()
{
string s="你好, \\我是需要被替换的\"字符串\", 我叫\'李四\', \\.";
Console.WriteLine("替换前: "+s);
s= Regex.Replace(s,@"\\(?!['""\\.])","\\\\");
Console.WriteLine("替换后: "+s);

/*
替换前: 你好, \我是需要被替换的"字符串", 我叫'李四', \.
替换后: 你好, \\我是需要被替换的"字符串", 我叫'李四', \.
*/
}

解决方案 »

  1.   

    或许这样你看r更清楚一些: string s="你好, \\我是需要被替换的\\\"字符串\\\", 我叫\\\'李四\\\', \\\\.";
    Console.WriteLine("替换前: "+s);
    s= Regex.Replace(s,@"\\(?!['""\\.])","\\\\");
    Console.WriteLine("替换后: "+s);

    /*
    替换前: 你好, \我是需要被替换的\"字符串\", 我叫\'李四\', \\.
    替换后: 你好, \\我是需要被替换的\"字符串\", 我叫\'李四\', \\.
    */
      

  2.   

    string s="你好, \\我是需要被替换的\\\"字符串\\\", 我叫\\'李四\\', 我是不需要替换的\\\\字符串.";
    Console.WriteLine("替换前: "+s);
    s= Regex.Replace(s,@"(?<!\\)\\(?!['""\\.])","\\\\");
    Console.WriteLine("替换后: "+s);

    /*
    替换前: 你好, \我是需要被替换的\"字符串\", 我叫\'李四\', 我是不需要替换的\\字符串.
    替换后: 你好, \\我是需要被替换的\"字符串\", 我叫\'李四\', 我是不需要替换的\\字符串.
    */
      

  3.   

    给大家解释一下正则表达式的意思:(?!exp)匹配后面跟的不是exp的位置
    (?<!exp)匹配前面不是exp的位置