c#replace \“characters
我发送了一个XML字符串,我试图通过XmlReader解析,我试图去除\"
字符。
我试过了
.Replace(@"\", "") .Replace("\\''", "''") .Replace("\\''", "\"")
加上其他几种方式。
有任何想法吗?
你是这样尝试的:
string text = GetTextFromSomewhere(); text.Replace("\\", ""); text.Replace("\"", "");
? 如果是这样,那就是问题 – Replace
不会更改原始字符串,它会返回一个新的字符串,并执行替换…所以你想要:
string text = GetTextFromSomewhere(); text = text.Replace("\\", "").Replace("\"", "");
请注意,这将替换每个反斜杠和每个双引号字符; 如果您只想替换“反斜杠后跟双引号”,您只需使用:
string text = GetTextFromSomewhere(); text = text.Replace("\\\"", "");
(正如评论中所提到的,这是因为字符串在.NET中是不可变的 – 一旦你以某种方式得到一个字符串对象,该字符串将始终具有相同的内容。你可以将一个不同字符串的引用分配给一个变量当然,但这实际上并没有改变现有字符串的内容。)
在.NET Framework 4和MVC中,这是唯一有效的表示:
Replace(@"""","")
在任何组合中使用反斜杠都不起作用……
试试这样:
Replace("\\\"","");
这将替换\"
空字符串\"
出现。
例如:
string t = "\\\"the dog is my friend\\\""; t = t.Replace("\\\"","");
这将导致:
the dog is my friend
这些角色出在哪里? 如果你检查记事本中的XML数据,你会看到它们吗? 或者在检查调试器中的XML数据时是否看到它们。 如果是后者,它们只是"
字符的转义字符,因此是实际XML数据的一部分。
\ => \\ and " => \"
所以Replace("\\\"","")
替换(@“\”“”,“”)
你必须使用双双引号来逐字逐句地转义 双引号 。