我有一个看似简单的问题,但对于我的生活,我无法弄清楚如何实现它。
这是我的起始字符串:
Hello \"this is my string\"
这就是我想要的结果:
Hello "this is my string"
基本上,我需要用\"
替换"
。
我不想要删除所有出现的\
,因为我的字符串中的其他位置可能存在单个反斜杠。我只想用\"
替换"
的出现次数。
答案 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("\\\"", "");