3 回答
TA贡献1993条经验 获得超5个赞
我怀疑你的字符串实际上只包含一个反斜杠,但是你在调试器中查看它,它会将它转换为一个在C#中作为常规字符串文字有效的形式。
如果在控制台或消息框中打印出来,是否显示两个反斜杠或一个?
如果你真的想用一个双反斜杠替换一个,我很容易这样做:
text = text.Replace(@"\\", @"\");
...但我的猜测是,原始版本不包含双反斜杠。如果这没有帮助,请提供更多详细信息。
编辑:在回答编辑过的问题时,你stringToBeReplaced
只有一个反斜杠。真的。无论你在哪里看到两个反斜杠,那个观众都会逃避它。字符串本身没有两个反斜杠。检查stringToBeReplaced.Length
并统计字符。
TA贡献1785条经验 获得超8个赞
万一有人坚持这个,上面的答案都没有,下面是对我有用的。希望能帮助到你。
var oldString = "\\r|\\n";
// None of these worked for me
// var newString = oldString(@"\\", @"\");
// var newString = oldString.Replace("\\\\", "\\");
// var newString = oldString.Replace("\\u5b89", "\u5b89");
// var newString = Regex.Replace(oldString , @"\\", @"\");
// This is what worked
var newString = Regex.Unescape(oldString);
// newString is now "\r|\n"
- 3 回答
- 0 关注
- 2995 浏览
添加回答
举报