-2

我有一个看起来很简单的问题,但对于我的生活,我无法弄清楚如何完成它。

这是我的起始字符串:

Hello \"this is my string\"

这是我想要的结果:

Hello "this is my string"

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

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

4

4 回答 4

3

如果字符串实际上包含 \":

var replaced = myString.Replace(@"\""", @"""")
于 2013-10-07T14:04:23.380 回答
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("\\\"", "\"");

这会将所有出现的 \" 替换为 "

于 2013-10-07T14:10:35.147 回答
0

如果您对转义字符过敏(换句话说,只是为了好玩,不使用转义字符编写,例如既不\\\在普通字符串中也不"""在逐字字符串中):

myString.Replace(@"\"+'"', '"'.ToString())

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

于 2013-10-07T14:08:13.847 回答
-1

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

于 2013-10-07T14:06:04.600 回答