You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy中获取路径最顶层父目录的正则表达式需求

Groovy中提取文件路径的最顶层父目录(正则实现)

要从文件路径中提取最顶层父目录,仅当路径包含层级分隔符(/)时返回结果,纯文件名路径不返回任何内容,可以通过以下正则表达式结合Groovy语法实现:

实现方案

正则表达式说明

使用正则 ^([^/]+)/ 匹配路径开头的顶层目录部分:

  • ^:锚定字符串起始位置
  • ([^/]+):捕获一个或多个非/的字符,这部分就是顶层目录名称
  • /:确保捕获的目录后存在层级分隔符,排除无父目录的纯文件名场景

Groovy代码实现

// 定义提取顶层父目录的方法
def extractTopLevelDir(String filePath) {
    def matcher = filePath =~ /^([^/]+)/
    // 仅当路径包含分隔符且匹配到有效目录时返回结果
    return filePath.contains('/') && matcher.find() ? matcher.group(1) : null
}

// 测试示例路径
def testPaths = [
    'foo/bar/baz/file.ext',
    'file2.ext',
    'fooz/file3.ext'
]

testPaths.each { path ->
    def topDir = extractTopLevelDir(path)
    if (topDir) {
        println("路径 '$path' 的顶层父目录:$topDir")
    } else {
        println("路径 '$path' 无顶层父目录")
    }
}

运行结果

路径 'foo/bar/baz/file.ext' 的顶层父目录:foo
路径 'file2.ext' 无顶层父目录
路径 'fooz/file3.ext' 的顶层父目录:fooz

补充说明

  • 如果需要兼容Windows风格的路径(\分隔),可将正则中的/替换为[\\/],注意Groovy字符串的转义处理:~/^([^\\\\/]+)[\\\\/]
  • 方法会自动过滤纯文件名路径,仅返回存在层级结构的路径的顶层目录名

内容的提问来源于stack exchange,提问作者rismoney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:55:17