如何用正则匹配任意多级目录下指定名称的目录路径
匹配任意层级前缀的folder路径正则表达式
你需要的正则可以覆盖0次或多次../前缀加上folder/*的情况,最终表达式如下:
^(?:\.\./)*folder/(.*)$
各部分解释:
^:锚定字符串的起始位置,避免路径中间出现匹配片段(?:\.\./)*:非捕获分组,匹配0次或多次的../前缀。(?:...)用于分组但不捕获该部分内容,*表示允许0次(即直接folder/的情况)或多次层级回退folder/:匹配固定目标目录名,确保路径包含该目录(.*):捕获folder/之后的任意内容,对应你需求中的*部分$:锚定字符串的结束位置,确保整个路径完全符合模式
匹配示例:
- 符合:
folder/image.jpg - 符合:
../folder/docs/manual.pdf - 符合:
../../../folder/assets/css/style.css
不匹配示例:
- 不符合:
other-dir/folder/file.txt(路径开头不是../或直接folder/) - 不符合:
folder(缺少folder/后的路径分隔符,不符合folder/*的模式) - 不符合:
./folder/readme.md(需求未包含./前缀,若需要支持可调整正则为^(?:\./|\.\./)*folder/(.*)$)
内容的提问来源于stack exchange,提问作者bonum_cete
相关产品推荐
相关产品推荐

