c# - 在 C# 中,将 "\\"替换为 "\"

标签 c# replace

我有一个字符串:

var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";

我正在尝试将 \\ 替换为 \

我已经试过了:

path = path.Replace("\\\\", "\\");
path = path.Replace(@"\\", @"\");

这些都没有用单反斜杠替换双反斜杠。

最佳答案

路径 不包含任何双反斜杠。 "blah\\blah" 实际上是 blah\blah

在普通的字符串文字中(那些不是以 @ 开头的),您需要通过在它们前面放置一个反斜杠 (\) 来转义某些字符。其中一个字符是反斜杠本身,所以如果你想将一个反斜杠放入一个字符串中,你可以用另一个反斜杠将其转义,这就是为什么 path 包含所有这些双反斜杠的原因。在运行时,这些将是单个反斜杠。

请参阅此处了解可用的转义序列:C# FAQ: Escpape Sequences

另一方面,Verbatim 字符串(以 @ 开头的字符串)中的大多数字符不需要转义。所以@"\"实际上是\。在逐字字符串中需要转义的唯一字符是引号。您只需键入一个双引号即可完成此操作。所以@""""实际上是"

因此,如果您想将 d:\project\Bloomberg\trunk\UI.Demo\ 放入字符串中,您有两种可能性。

普通字符串文字(注意 \ 被转义):

var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";

或逐字字符串文字(无需转义\):

var path = @"d:\project\Bloomberg\trunk\UI.Demo\";

关于c# - 在 C# 中,将 "\\"替换为 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11646168/

相关文章:

c# - 如何使用 VS2008 将事件与 WPF 中的菜单项相关联?

c# - 从 MVVM WPF 项目中的 DataGrid 选择多个项目

c# - 在 ASP.NET Core3.1 中使用包含 'System.Web.HttpContext' 的遗留项目

c# - 从我的字符串中删除\

python - 如何将一列拆分为一些列,其中包含像 dict 类型的单元格?

c# - 排除 SQLException 问题

c# - .NET 4.5 中的代码契约 + 异步 : "The method or operation is not implemented"

python - 如何使用 Python 中的正则表达式从预定义的子字符串列表中替换或更新 DataFrame 的字符串实例

svn - 通过 WebDAV (www/apache) 访问文件时,是否可以让 SVN 替换关键字?

mysql - 如何在MySQL表中使用迁移查询来替换记录?