字符串替换不替换c#中的双反斜杠

本文关键字:替换 字符串 | 更新日期: 2023-09-27 18:02:18

也许我遗漏了什么

我有一个变量dir进来看起来像''''SERVERNAME''dir''subdir

我需要它看起来像''SERVERNAME'dir'subdir

我使用string。替换例程,但它没有替换双斜杠,问题是,当我尝试使用路径时,它找不到文件。

如何使用string。替换这里,以获得一个有效的路径?

字符串替换不替换c#中的双反斜杠

dir.Replace(@"''", @"'")应该能做到。

在c#中,反斜杠字符"'"用于转义字符串中的字符。例如,在字符串"Hello'nworld"中,"'n"表示换行符。因此,一般来说,当c#在字符串中看到"'"时,它希望将其视为特殊命令字符的一部分,而不是作为字面量"'"。

那么,你如何告诉c#你想要一个字面值的反斜杠出现在你的字符串中,它不是一个特殊命令字符的一部分?转义反斜杠。转义字符也是一个反斜杠。因此,要告诉c#你真的想要一个文字"'"出现在你的字符串中(例如在文件路径中),你可以使用两个反斜杠:" '' "。

假设我想设置一个变量到以下路径:C:'Temp'FileDrop

在c#中,我必须这样做:

string myPath = "C:''Temp''FileDrop";

我怀疑,当你看到一个变量的值看起来像''''SERVERNAME''dir''subdir,它正在转义反斜杠字符,所以变量的真实值是''SERVERNAME'dir'subdir

顺便说一下,如果你要从Windows资源管理器中复制和粘贴长路径,那么必须加倍反斜杠来转义它们是一件非常痛苦的事情。所以c#有一个特殊的字符串文字字符"@"。如果你用"@"作为字符串的前缀,那么它将完全按照写入的方式处理字符串。如
string myPath = @"C:'Temp'FileDrop";