2

我正在尝试检查路径是否有两个以上的 \'s 并用两个 \'s 替换它们。

例如,如果我的路径看起来像:

C:\\documents\\\\temporary 

替换为\\\\\\结果将是:

C:\\documents\\temporary 

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

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

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

4

3 回答 3

4

使用正则表达式\\{2,}替换 2 个或更多斜杠的实例。 {n,}意味着该模式可以出现任意次数,从n无限次。

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

雷伊

现在我不确定你是否只想要一个或两个斜线。如果你想要两个回来,把它改成:

strVersion = Regex.Replace(strVersion, @"\\{2,}", @"\\");
于 2013-07-25T20:12:18.623 回答
0

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

如果您不期望转义字符串,那么也可以将单个反斜杠实例替换为两个。

strVersion = Regex.Replace(strVersion, @"\\+", @"\\");
于 2013-07-25T20:19:05.473 回答
-1

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

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

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

于 2013-07-25T20:17:55.913 回答