我有一个看起来很简单的问题,但对于我的生活,我无法弄清楚如何完成它。
这是我的起始字符串:
Hello \"this is my string\"
这是我想要的结果:
Hello "this is my string"
所以基本上,我需要\"
用 just替换"
。
我不想只删除所有出现的,\
因为单个反斜杠可能存在于我的字符串中的其他位置。我只想替换出现的\"
with "
。
我有一个看起来很简单的问题,但对于我的生活,我无法弄清楚如何完成它。
这是我的起始字符串:
Hello \"this is my string\"
这是我想要的结果:
Hello "this is my string"
所以基本上,我需要\"
用 just替换"
。
我不想只删除所有出现的,\
因为单个反斜杠可能存在于我的字符串中的其他位置。我只想替换出现的\"
with "
。
如果字符串实际上包含 \":
var replaced = myString.Replace(@"\""", @"""")
您可能会对 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("\\\"", "\"");
这会将所有出现的 \" 替换为 "
如果您对转义字符过敏(换句话说,只是为了好玩,不使用转义字符编写,例如既不\\
是\
在普通字符串中也不""
是"
在逐字字符串中):
myString.Replace(@"\"+'"', '"'.ToString())
请注意,C# 调试器显示"
为\"
,因此您的字符串实际上可能只有"
s。例如string helloWorld = "Hello \"World\"";
,在调试器中的显示与在代码中一样,"Hello \"World\""
,而不是字符串的值,Hello "World"
。
试试这个yourString.Replace("\\\"", "");