C#-如何将转义字符串转换为文本字符串

本文关键字:字符串 转换 文本 转义字符 转义 C#- | 更新日期: 2023-09-27 17:54:37

可能重复:
我可以在运行时扩展一个包含C#文字表达式的字符串吗?

如何在运行时转换从文件读取的转义字符串,例如

"Line1'nLine2"

转换为其文字值:

Line1
Line2

令人惊讶的是,我在这里找到了一个使用CSharpCodeProvider((进行相反操作的例子,这似乎是更困难的转换。为了做相反的事情,我似乎需要生成代码来定义一个类,并在内存中编译它或执行一系列。Replace((调用,希望我不会错过任何转义序列。

C#-如何将转义字符串转换为文本字符串

CSharpCodeProvider听起来肯定能做到这一点。然而,在使用它之前,我会问两个问题:它是否需要是完全C#字符串的字面语法,以及输入文件是否可信?

CSharpCodeProvider显然提供了C#编译器的语法,但在我看来,通过这种途径将一些代码注入到您的进程中相对容易。

Javascript字符串文本语法与C#字符串文本语法非常接近。NET包含一个JavaScriptSerializer类,该类可以解析此类字符串文本,而无需将其作为代码注入正在运行的进程中。

'n 替换转义值

static void Main(string[] args)
{
    var test = "Line1''nLine2";
    // Line1'nLine2
    Console.WriteLine(test);
    // Line1
    // Line2
    Console.WriteLine(test.Replace("''n", Environment.NewLine));
    Console.ReadKey();
}