使用正则表达式或其他方法更正路径分隔符

时间:2013-07-25 20:10:18

标签: c# regex

我试图检查路径是否有两个以上,并用两个路径替换它们。

例如,如果我看到的路径如下:

C:\\documents\\\\temporary 

\\\\替换为\\,结果如下:

C:\\documents\\temporary 

目前我在C#中使用的(不起作用)是:

strVersion = Regex.Replace(strVersion, @"\\\\{4}", "\\\\");

编辑:现在修复了我使用Daniel Gimenez的解决方案。

3 个答案:

答案 0 :(得分:4)

使用正则表达式\\{2,}替换2个或更多斜杠的实例。 {n,}表示模式可以从n到无穷大发生任意次。

strVersion = Regex.Replace(strVersion, @"\\{2,}", "\\");

REY

现在我不确定你是想要一个斜杠还是两个斜杠。如果你想要两个回来改变它:

strVersion = Regex.Replace(strVersion, @"\\{2,}", @"\\");

答案 1 :(得分:0)

丹尼尔的回答是正确的,但要补充一点:

如果你不期望转义字符串,那么用两个反转单个反斜杠实例也是有意义的。

strVersion = Regex.Replace(strVersion, @"\\+", @"\\");

答案 2 :(得分:-1)

在您的初始代码中,我的猜测是

strVersion = Regex.Replace(strVersion, @"\\{4}", "\\");

替换为'\'而不是“\\”。也许试试@“\\”或“\\\\”? (有点烦人的是,stackoverflow文本编辑器实际上像对待一个字符串一样处理\,所以在我的解决方案中,我实际上必须为第一个输出4个而第二个输入8个