正则表达式,如果需要,在路径的末尾添加反斜杠

时间:2013-12-05 22:06:49

标签: c# .net regex

为什么这种方法不起作用?

Regex.Replace(Regex.Replace("c:\\test", "$", "\\"), "\\\\$", "\\")   //expected results
Regex.Replace(Regex.Replace("c:\\test\\", "$", "\\"), "\\\\$", "\\") //not expected results

我认为它会在行尾添加一个反斜杠然后取出一个双反斜杠,如果它在那里。正则表达式的“$”,“\”部分似乎有效,但不是“\\ $”,“\”部分。

-Eric

2 个答案:

答案 0 :(得分:1)

使用正则表达式执行此任务是过度的。正则表达式最适合匹配模式,在这种情况下,您只是匹配单个字符。是的,这是一种模式,但对于像这样的简单操作,使用直接字符比较会更有效率

string EnsureBackSlash(string path) { 
  if (String.IsNullOrEmpty(path) || path[path.Length - 1] != '\\') { 
    return path + "\";
  }

  return path;
}

答案 1 :(得分:0)

我想你会希望在某些时候连接一些文件名或子目录名。

在那种情况下,为什么要用斜线来打扰?

查看Path.Combine()