如何用单个反斜杠替换双反斜杠

本文关键字:替换 何用单 | 更新日期: 2023-09-27 18:10:16

我想用一个反斜杠代替两个反斜杠。

使用

string destinationFile = System.IO.Path.Combine(msiDirectory, fileName).Replace('''', ''''); 

C: ' Hg ' temp 'LogFile.txt

我怎么能有

C: ' Hg ' temp ' LogFile.txt

使用一些答案(Replace('''''', '''')Replace(@'''', @'''))在这里我得到C:'Hg'temp' LogFile.txt

如何用单个反斜杠替换双反斜杠

尝试使用

string destinationFile = System.IO.Path.Combine(msiDirectory, fileName)
                                       .Replace(@"''", @"'"); 

@必须在字符串之前。

的例子:

string path = "C:''Hg''temp''LogFile.txt";
string output = path.Replace(@"''", @"'"); 
output >>>
C:'Hg'temp'LogFile.txt

字符串使用反撇号作为转义字符。通过将@放在字符串前面,您告诉编译器您将不使用反斜杠作为转义字符,而是使用纯反斜杠。

您也可以通过转义反斜杠来实现,如下所示。

string destinationFile = System.IO.Path.Combine(msiDirectory, fileName)
                                       .Replace("''''", "''"); 

注意这里的两个反斜杠表示在书写中只有一个普通的反斜杠。您可以通过将字符串打印到控制台来进行测试。

点击这里阅读更多

@jackjop已经提到了,但是你也可以尝试下面的代码,也可以工作:

var destinationFile = System.IO.Path.Combine(msiDirectory, fileName).Replace("''''", "''");

FWIW Replace("''", "'")在VB中运行良好

试试这个

string destinationFile = System.IO.Path.Combine(msiDirectory, fileName).Replace(@"''", @"'");