从文件转义字符串

本文关键字:字符串 转义字符 转义 文件 | 更新日期: 2023-09-27 18:02:27

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

        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'")是死的《大自然》

从文件转义字符串

尝试使用:Regex.Unescape(string)

应该是正确的方式。

Att .

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

编辑

我的回答可能有点草率。我想你要问的是:当从文件中读取时,我如何让c#将字面值字符串''n'转换为换行符(类似的问题适用于其他转义字面值)。

答案是:你自己写。您需要搜索"''n"并将其转换为"'n"。请记住,在c#中,是编译器而不是语言将字符串更改为实际的字面量,因此没有一些库调用来完成此操作(实际上可能有-有人查找一下,快)。

编辑

啊哈!尤里卡!见:

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.unescape.aspx

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

我想说你可能需要一个搜索和替换函数来转换字符串"'n"到它的unicode字符''n'等等。

我不认为有什么简单的方法可以做到这一点。因为解析字面量是词法分析器的工作。

我会尝试通过CodeDOM生成和编译一个类,其中插入的字符串作为常量。它不是很快,但是它会做所有的转义