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)
您可以尝试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.