我有一个返回给我的字符串,其中包含转义字符。
这是一个示例字符串
如您所见,它包含转义字符。我需要将其转换为实际值(value)
我怎样才能做到这一点?
最佳答案
如果要替换所有转义的字符代码,而不仅仅是@
的代码,则可以使用以下代码片段进行转换:
public static string UnescapeCodes(string src) {
var rx = new Regex("\\\\([0-9A-Fa-f]+)");
var res = new StringBuilder();
var pos = 0;
foreach (Match m in rx.Matches(src)) {
res.Append(src.Substring(pos, m.Index - pos));
pos = m.Index + m.Length;
res.Append((char)Convert.ToInt32(m.Groups[1].ToString(), 16));
}
res.Append(src.Substring(pos));
return res.ToString();
}
该代码依赖于正则表达式来查找所有十六进制数字序列,将其转换为
int
,并将结果值转换为char
。