Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文件中转义字符串_C# - Fatal编程技术网

C# 从文件中转义字符串

C# 从文件中转义字符串,c#,C#,我必须解析一些包含字符串的文件,这些字符串中包含我需要转义的字符。举个简单的例子,你可以想象如下: var stringFromFile = "This is \\n a test \\u0085"; Console.WriteLine(stringFromFile); 上述结果将产生以下输出: This is \n a test \u0085 ,但我希望文本转义。我如何在C#中实现这一点?文本也包含unicode字符 明确;上面的代码只是一个

我必须解析一些包含字符串的文件,这些字符串中包含我需要转义的字符。举个简单的例子,你可以想象如下:

        var stringFromFile = "This is \\n a test \\u0085";
        Console.WriteLine(stringFromFile);
上述结果将产生以下输出:

        This is \n a test \u0085
,但我希望文本转义。我如何在C#中实现这一点?文本也包含unicode字符

明确;上面的代码只是一个示例。文本包含文件中的\n和unicode\u00xx字符。

文件内容示例:

Fisika(vanaf Grieks,u03C6\u03C5\u03C3\u03B9\u03BA\u03CC\u03C2, \“Natuurlik\”,en\u03C6\u03CD\u03C3\u03B9\u03C2,““Natuur\”)是死的 韦滕斯卡普范迪纳图尔酒店


不要使用
@
符号——这会将字符串解释为100%文本。只要把它脱下来,一切都会好起来的

编辑

我的回答可能有点草率。我想您要问的是:当从文件中读取时,如何让C#将文本字符串“\n”转换为换行符(对于其他转义文本,类似的问题)

答案是:你自己写。您需要搜索“\\n”并将其转换为“\n”。请记住,在C#中,是编译器而不是语言将字符串更改为实际的文本,因此没有任何库调用来执行此操作(实际上可能会有人快速查找)

编辑

啊哈!尤里卡!瞧:


尝试使用:
Regex.Unescape(字符串)

应该是正确的方法


附件

由于您正在从文件中读取字符串,\n因此不会被读取为unicode字符,而是两个字符\n和n


我想说,您可能需要一个搜索替换函数来将字符串“\n”转换为unicode字符“\n”等等。

我认为没有任何简单的方法可以做到这一点。因为词法分析器的工作是解析文本


我会尝试通过CodeDOM生成和编译一个类,并将字符串作为常量插入其中。速度不是很快,但它可以完成所有的逃逸。

正如我所说,这只是一个例子。文本包含文件中的\n和\u00**字符。以上只是一个例子,我来自加拿大。他们说我很慢,是吗?让它看起来更偏袒。它只用于去除正则表达式代码,而不是实际将转义转换为字符。
Fisika(vanaf Grieks,u03C6\u03C5\u03C3\u03B9\u03BA\u03CC\u03C2),“Natuurlik\”,en\u03C6\u03CD\u03C3\u03B9\u03C2,“Natuur\”)是die wetenskap van die Natuur
变成了:
Fisika(vanaf Grieks,φ∑∑∑φ953k,∑natu973k),natuu,“Natuur”)是die wetenskap van die Natuur
这很好用,还可以处理那些unicode的。谢谢!啊,你赢了我。你赢了+1。看我的答案,正则表达式。Unescape应该是方法。