【问题标题】:Unescaping strings in c# using string.Replace?使用string.Replace在c#中取消转义字符串?
【发布时间】:2016-10-19 10:41:00
【问题描述】:

我在 checkListBox 中有一个字符串集合,我将此集合转换为 List<string>。在此转换过程中,我只能想象字符串由于采用以下格式而被转义:

<category title="FOO">

这就变成了

"<category title=\"FOO\">

我需要取消转义这些字符串以进行比较,并且我尝试过类似

 s.Replace(@"\""", @""""); <-------- trying to replace all \" with "

这甚至可能吗?如果是这样,从字符串中的引号中删除斜杠的正确方法是什么?

【问题讨论】:

    标签: c# escaping


    【解决方案1】:

    试试 Replace("\\"", "\""),或者更好的 Replace("\", "")

    【讨论】:

    • 刚刚意识到该字符串不包含结束标签,因此如果斜杠不干扰第二个引号(不幸的是),您的第二个建议将起作用
    【解决方案2】:
    【解决方案3】:

    您可以使用Unescape

        var str = "<category title=\"FOO\">";
        var result = System.Text.RegularExpressions.Regex.Unescape(str);
        Console.WriteLine(result); //<category title="FOO">
    
        Console.ReadLine();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 2015-05-31
      • 2015-11-06
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多