c# - 从路径字符串中去除尾随字符

标签 c# regex

我是正则表达式的新手,我希望从字符串末尾删除已知数量的字符。该字符串代表一个文件路径,因此我想去掉尾随字符,而不是 c:\test\test1\test2,留下 c:\test

我遇到的问题是反斜杠。

我会使用哪种正则表达式来执行此操作?

最佳答案

Some people, when confronted with a problem, think "I know, I'll use regular expressions."
Now they have two problems.

由于您处理的是文件路径,因此可以使用 Path 的方法计算结果的类:

string GetPathFirstLevel(string path)
{
    while (Path.GetDirectoryName(path) != Path.GetPathRoot(path))
    {
        path = Path.GetDirectoryName(path);
    }

    return path;
}

这将返回以下值:

GetPathFirstLevel(@"c:\test\test1\test2")  //  @"c:\test"
GetPathFirstLevel(@"c:\test")              //  @"c:\test"
GetPathFirstLevel(@"c:")                   //  null

关于c# - 从路径字符串中去除尾随字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869735/

相关文章:

c# - 为什么 ? : operator does not work with nullable<int> assignation?

c# - 等待来自 SendGrid 的 API 返回代码时应用程序卡住

r - 如何将一列字符串转换为因子列表,使用正则表达式过滤值

c# - 仅在使用 LINQ 时引用需要错误

c# - Foreach 循环中的 Entity Framework 事务

Python Pandas 正则表达式输出 NaN

Ruby 正则表达式问题 wrt String 上的 sub 方法

javascript - IE8 以不同于所有其他浏览器的方式解析这个简单的正则表达式

c# - 将异步任务切换为同步任务

mysql - 从 MySQL 中的第一个整数中查找/剪切字符串