删除转义序列不起作用

时间:2013-12-04 07:01:49

标签: c# html asp.net regex string

我有这样的HTML代码:

 <tr>
     <th colspan="2" style="padding: 10px; font-size: 11px; background: #eee; border: 1px solid white" align="left">
         Some Text Here                    
     </th>
 </tr>

我将其存储在这样的字符串中:

 string gtr = 
        @"<tr>
            <th colspan=""2"" style=""padding: 10px; font-size: 11px; background: #eee; border: 1px solid white"" align=""left"">
                 Some Text Here
            </th>
        </tr>";

但是当我调试它时显示字符串像这样:

<tr>
     <th colspan=\"2\" style=\"padding: 10px; font-size: 11px; background: #eee; border: 1px solid white\" align=\"left\">
         Some Text Here
     </th>
</tr>

显示转义序列字符。

试图像这样删除它们

gtr = gtr.Replace(@"\","");

使用所有其他可能的方法

但是这不起作用它始终显示带有转义序列字符的字符串 gtr

如何在没有Escape Sequence Character的情况下实现字符串,并且只提供清晰的HTML代码。

我只使用ASP.NET和C#而不是使用MVC,这是一个静态内容。

2 个答案:

答案 0 :(得分:5)

  

但当我调试它时显示字符串

那是因为你正在查看调试器中的字符串 。该字符串实际上并不包含那些反斜杠 - 它们只是调试输出的一部分,它会转义各种字符,使其看起来像是代码中的常规字符串文字。

将字符串写入文件或控制台,你会发现反斜杠确实不存在。

作为一种在调试器中说服自己的另一种方法,试试这个:

 string x = "\"\"";
 int y = x.Length;
 char z = x[0];

然后在调试器中,您会看到y为2,而z只是" - 它可能会再次转义,但显然它不能同时是两个字符\",因为它只是char

答案 1 :(得分:2)

当我从Quick Watch检查Text Visualizer中的代码时,它会显示没有转义字符的字符串,请参阅以下快照

enter image description here