转义字符串中的反斜杠

Escaping backslashes in string

我想知道在不添加不必要的斜杠的情况下转义字符串中的反斜杠的好方法是什么。

我的意思是,通常如果我想转义字符串中的反斜杠,最简单的方法是像这样使用 String.Replace()

string s = someString.Replace("\", "\\");

类似的事情可以用 Regex.Replace().

的正则表达式来完成

现在我的问题是,假设我有一个字符串,它的一些反斜杠被转义了,例如:"C:\some_folder\some_file.bin"

现在,如果我尝试通过在每次出现之前添加另一个反斜杠来替换其中的反斜杠,我将得到以下字符串:

"C:\some_folder\\some_file.bin"

不清楚,\\ 是不必要的,那么我该如何忽略已经转义的字符呢?

我想,这就是你想要做的-

   string path = @"C:\some_folder\some_file.bin";
   string exactPath = string.Join("\",path.Split(new char[] { '\' }, StringSplitOptions.RemoveEmptyEntries));

这是一个 RegEx 方法

string Result = Regex.Replace("C:\some_folder\\some_file.bin", "[\\]+", "\");  

在这种情况下,您需要为 RegEx 和 C# 转义。或者你可以写

string Result = Regex.Replace(@"C:\some_folder\some_file.bin",@"[\]+",@"\");

因为 "\" 等于 @"\"