c# - 为什么反斜杠的这个替换不起作用?

标签 c# regex replace filepath backslash

所以我需要从字符串中删除转义的反斜杠(在我的例子中,路径就像“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/

相关文章:

regex - 如何仅在 powershell 的子字符串中替换特定字符

c# - 通过YouTube API访问“喜欢”或“不喜欢”功能

c# - 为什么我不能将类隐式转换为其通用基类?

c# - 如何在WPF窗口中隐藏关闭按钮?

java - 如何在正则表达式中使用插入符和美元?

java - 尝试为 4 个简单条件创建正则表达式

Javascript正则表达式表示大写

PHP:替换所有实例

c# - 在 WPF 的 MVVM 模式中使用 Tabcontrol

python - 清洁 Pandas 列的最佳方法