所以我需要从字符串中删除转义的反斜杠(在我的例子中,路径就像“C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE\”)。
为了替换,我尝试了以下方法:
String openWith = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE";
string newString = openWith.Replace(@"\\", @"\");
openWith = openWith.Replace(@"\\", @"\");
openWith = Regex.Replace(openWith,"\\\\","\\");
但是这些都不起作用!谁能向我解释一下为什么会这样?
提前谢谢您!
最佳答案
您的字符串不包含双反斜杠。
"C:\\"
中的第一个反斜杠是由 C# 编译器解释的转义字符。然而,在运行时该字符串仅包含单个反斜杠。您可以通过显示字符串的值来向自己证明这一点:
String openWith = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE";
Console.WriteLine(openWith);
结果:
C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
请注意,输出中只有单个反斜杠。
查看它在线运行:ideone
关于c# - 为什么反斜杠的这个替换不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166864/