翻译字符串中的特殊字符

本文关键字:特殊字符 字符串 翻译 | 更新日期: 2023-09-27 17:51:07

我有一个从xml文档读取的程序。在这个xml文档中,一些属性包含特殊字符,如"'n","'t"等。

是否有一种简单的方法可以用实际字符替换所有这些字符串,或者我只需要像下面的例子一样手动为每个字符做这件事?

手动的例子:

s.Replace("''n", "'n").Replace("''t", "'t")...
编辑:

我正在寻找一些方法来处理字符串像这样的转义字符串(即使我知道这不起作用)

s.Replace("''", "'");

翻译字符串中的特殊字符

Try Regex.Unescape().

官方文档在这里:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.unescape (v = vs.110) . aspx

为什么不一次遍历文档并构建新的字符串呢?节省了大量重复搜索和中间分配

string ConvertSpecialCharacters(string input) {
  var builder = new StringBuilder();
  bool inEscape = false;
  for (int i = 0; i < input.Length ; i++) {
    if (inEscape) {
     switch (input[i]) {
      case 'n':  
        builder.Append(''t');
        break;
      case 't':
        builder.Append(''n');
        break;
      default:
        builder.Append('''');
        builder.Append(input[i]);
    }
    else if (input[i] == '''' && i + 1 < input.Length) {
      inEscape = true;
    }
    else {
      builder.Append(input[i]);
    } 
  }
  return builder.ToString();
}