using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str2 = @"abc\'123";
            string str1 = evalstr(str2);
            Console.WriteLine(str1);
        }
        static string evalstr(string s)
        {
            return Regex.Replace(s, @"\\(.)", "$1");
        }
    }
}

解决方案 »

  1.   

    本帖最后由 caozhy 于 2014-01-15 00:39:00 编辑
      

  2.   

    不明白你为什么要这么做?
    string str2=@"abc\'123"; // str2 实际等于字符【abc\'123】
    字符串前加@符号的写法是c#编译器所支持的特性。
      

  3.   

    str1和str2不是一样的连接字符串 你看到版主的答案是给你替换
    也就是说 你问的问题是如何把1这个字符串变成2
    所以说 这个问题很奇葩
      

  4.   

    全部答非所问。  我需要的是转义所有转义字符,100%与IDE匹配,如果每个转义字符用正则自己替换,担心某个漏掉或与IDE的规则不一致。  我需要的是像IDE得到的结果一样,但是自己转义。
      

  5.   


    非常感谢你的热心帮助!! 不过,确实有不一致的地方,同二楼的代码假如 str2=@"\x8f9f";   这个代码转义的结果,可以视为“乱码”并没有转义完全。而IDE转义的结果是—— 【辟】字
      

  6.   

    http://www.csharp-eval.com/Download.php这个东西能做到
    具体你看一下人家的源码吧
      

  7.   


    非常感谢你的热心帮助!! 不过,确实有不一致的地方,同二楼的代码假如 str2=@"\x8f9f";   这个代码转义的结果,可以视为“乱码”并没有转义完全。而IDE转义的结果是—— 【辟】字
    好吧,既然js和C#不同,那你还是用C#的吧。思路类似,代码参考
    http://bbs.csdn.net/topics/360188060