日期:2014-05-17  浏览次数:20917 次

如何自己运行转义字符

string str1="abc\'123"; // str1 实际等于字符【abc'123】
string str2=@"abc\'123"; // str2 实际等于字符【abc\'123】

请问,如何在C#中有没有什么类和方法,可以直接运行一下使得 str2 转换为 str1 ?谢谢

------解决方案--------------------
本帖最后由 caozhy 于 2014-01-15 00:39:00 编辑
添加引用-com-Microsoft Script Control 1.0
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\\\""1/0";
            string str1 = evalstr(str2);
            Console.WriteLine(str1);
        }
        static string evalstr(string s)
        {
            try
            {
                MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "javascript";
                string s1 = Regex.Replace(s, @"(?<!\\)((\\\\)*)\""", @"$1\""");
                sc.AddCode("function foo() { return \"" + s1 + "\"; }");
                return sc.Run("foo", new object[] { }).ToString();
            }
            catch (Exception ex)
            {
                return s; //ex.Message;
            }
        }
&nbs