在C#中运行时插入特殊字符(\ t,\n,\ r \n等)

Chr*_*ham 3 c#

C#编译器插入特殊的字符文字,如\ t为tab,\n为换行等.但是有内置的C#或.Net函数可以在运行时插入它们吗?

例如,在运行时我读取了一个文本分隔文件格式的配置,可能是这样的:

Delimiter: \t
LineEnding: \r\n
Run Code Online (Sandbox Code Playgroud)

现在我唯一能想到的就是读取字符串然后用编译器插值字符串执行Replace():

Delimiter = Delimiter.Replace(@"\n", "\n").Replace(@"\r", "\r");
Run Code Online (Sandbox Code Playgroud)

Joã*_*elo 6

您可以尝试Regex.Unescape哪种可能满足您的所有要求.

foreach (var special in new string[] { @"\n", @"\t", @"\r\n" })
{
    Console.WriteLine("|{0}|", special);
    Console.WriteLine("|{0}|", Regex.Unescape(special));
    Console.WriteLine("----------------------"); 
}
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

它用字符本身替换不可打印字符的表示.例如,它用\ x07替换\ a.它替换的字符表示是\ a,\ b,\ e,\n,\ r,\ f,\ t和\ v.