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

如何修改正则实现任意嵌套深度的文件夹路径校验

通用UNC路径校验正则修改方案

你原有的正则仅支持匹配两级嵌套的UNC路径,只需将单级目录匹配逻辑封装为可重复的分组,即可支持任意n级嵌套的路径校验。

最终推荐正则

^\\\\[a-z0-9_?]+(?:\\[a-z0-9_?]+)+$

如果需要兼容路径末尾带反斜杠、或者仅共享名无下级目录的场景,可使用如下版本:

^\\\\[a-z0-9_?]+(?:\\[a-z0-9_?]+)*\\?$

正则说明

  • ^\\\\:匹配UNC路径开头固定的两个反斜杠(正则中反斜杠需要额外转义,因此写作4个反斜杠)
  • [a-z0-9_?]+:匹配第一级共享名/主机名,你原有规则中的[a-z0-9?_?]*存在冗余写法,方括号内的?_?等价于普通的_?,同时用+替代*可以避免匹配空的目录名,符合实际路径规则
  • (?:\\[a-z0-9_?]+)+:非捕获分组,用于匹配后续的多级嵌套目录:
    • ?: 表示非捕获分组,不会额外占用分组内存,性能更优
    • \\ 匹配目录之间的单个反斜杠分隔符
    • 末尾的+表示该分组可以重复1次到任意次数,实现n级目录的支持,如果需要兼容没有下级目录的场景可改为*
  • 末尾的\\?(可选配置):允许路径末尾带1个或不带反斜杠

测试示例

  • 可正常匹配的路径:
    • \\foo_bar1\foo_bar_2
    • \\foo_bar1\foo_bar_2\foo_bar_3\foo_bar_4\foo_bar_n
    • \\test123\a?b\c_d\efg
  • 无法匹配的非法路径:
    • \foo\bar(开头缺少一个反斜杠,不符合UNC路径规则)
    • \\foo(仅存在共享名,无任何下级目录,用带*的版本可匹配该场景)
    • \\foo\bar@123(目录名包含规则外的特殊字符@)
    • \\foo\bar\(末尾带反斜杠,用带\\?的版本可匹配该场景)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:15:03