我有以下代码:替换( “” “ ”\“ ”)获取的价值\“,而不是\”
string a = "\"";
string b = a.Replace("\"", "\\\"");
我想在B地与实例\\"
值。相反,当执行替换时,b具有\\\"
值。
为什么会发生这种情况?无论如何,取代\"
值,并得到\\"
而不是\\\"
值?
谢谢
我有以下代码:替换( “” “ ”\“ ”)获取的价值\“,而不是\”
string a = "\"";
string b = a.Replace("\"", "\\\"");
我想在B地与实例\\"
值。相反,当执行替换时,b具有\\\"
值。
为什么会发生这种情况?无论如何,取代\"
值,并得到\\"
而不是\\\"
值?
谢谢
像@dlatikay说上的评论,因为我看到的值上在Visual Studio debbuger,调试器再次逃脱字符串转化\\"
价值为\\\"
值。
您需要添加2条斜线,如果你想与\\"
你的现有代码\\\"
替换它进行初始化。这意味着一个\\
被计算为一个反斜杠,并且\"
被转义了双引号。所以,b变成\"
。如果你使用\\\\\"
。你会得到2个反斜杠和一个双引号。
string a = "\"";
string b = a.Replace("\"", "\\\\\"");
它可能是...确定你看到的不是视觉工作室调试器的洞察力/数据提示,它也显示转义版本? – dlatikay
您如何检查'b'的价值?此外,可能有更适合的方法来转义您的字符串,而不是您在此尝试执行的任何操作。 –
你会被越过反斜杠。 – Stuart