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

时间:2010-03-25 15:39:50

标签: c#

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

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

Delimiter: \t
LineEnding: \r\n

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

Delimiter = Delimiter.Replace(@"\n", "\n").Replace(@"\r", "\r");

1 个答案:

答案 0 :(得分: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("----------------------"); 
}

来自MSDN:

  

它取代了代表   不可打印的角色   人物本身。例如,它   用\ x07替换\ a。人物   它取代的表示是\ a,   \ b,\ e,\ n,\ r,\ f,\ t和\ v。