用字符串替换\“

时间:2013-10-07 14:01:32

标签: c#

我有一个看似简单的问题,但对于我的生活,我无法弄清楚如何实现它。

这是我的起始字符串:

Hello \"this is my string\"

这就是我想要的结果:

Hello "this is my string"

基本上,我需要用\"替换"

想要删除所有出现的\,因为我的字符串中的其他位置可能存在单个反斜杠。我只想用\"替换"的出现次数。

4 个答案:

答案 0 :(得分:3)

如果string实际上包含\“:

var replaced = myString.Replace(@"\""", @"""")

答案 1 :(得分:2)

您可能会对C#用于在字符串中嵌入引号符号的语法技巧感到困惑。考虑:

string abc = "This is a "quote"";  // INVALID SYNTAX, compile will complain
string def = "This is a \"quote\""; // this is ok

在这种情况下,\字符被称为转义字符,它告诉编译器忽略下一个字符并将其放在字符串中。结果字符串实际上不包含\字符。如果你这样做:

string ghi = "This is a \\\"quote\\\""; // this is ok

结果字符串将包含\和“,如果要替换它,您可以执行以下操作:

string newghi = ghi.Replace("\\\"", "\"");

这将用“

”替换所有“出现次数”

答案 2 :(得分:0)

如果你对转义字符过敏(换句话说,只是为了好玩,没有转义字符,例如正常字符串中的\\ \""都没有" for myString.Replace(@"\"+'"', '"'.ToString()) in verbatim string:

"

请注意,C#调试器将\"显示为",因此您的字符串实际上可能只有string helloWorld = "Hello \"World\"";。例如。 "Hello \"World\""在调试器中显示与代码Hello "World"相同,而不是字符串的值{{1}}。

答案 3 :(得分:-1)

试试这个yourString.Replace("\\\"", "");