我正在实现一个编译器,我需要将源代码文件中编写的转义字符文字转换为实际值。
例如,我可能会有一行源代码char = '\\'
。然后我解析它并得到字符串"'\\'"
,我需要将其转换为实际的char '\\'
。
char.Parse
并且char.TryParse
当以转义序列形式解析char时,两者均失败。例如:
char.Parse(@"\\");
将抛出“字符串必须正好一个字符长”。
有什么方法可以将列表中的所有内容都解析为一个字符(忽略那些太大以适合UTF16字符的字符)。
将@
使其成为一个逐字字符串。删除它,\
并将其作为下一个的转义字符\
。
@"\\".Length // 2 "\\".Length // 1