如何自己运行转义字符
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;
}
}
}
}