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

使用R语言gsub与正则匹配删除路径含path的文件夹层级咨询

解答

1. 更优的正则写法

你原有写法依赖path前后固定字符长度,适用场景有限,若其他层级出现符合.{4}path.{2}的字符片段会产生误删。结合你给出的「目标文件夹必含path、夹在斜杠间总长度固定10位」的前提,更稳妥的写法如下:

# 严格匹配斜杠间长度为10、含path的文件夹名,替换后自动合并斜杠
gsub("/(?=[^/]{10})[^/]*path[^/]*/", "/", x, perl = TRUE)

该写法用正向预查锁定目标层级的长度,同时锚定了斜杠作为文件夹边界,不会误匹配其他层级的内容。

2. 匹配path前后第一个斜杠间所有内容的实现

无需依赖固定长度规则,不管带path的文件夹名有多长,都可以用以下写法准确删除对应层级:

gsub("/[^/]*path[^/]*/", "/", x)

正则逻辑说明:

  • 首尾的/锚定目标文件夹前后的路径分隔符
  • [^/]*匹配所有非斜杠的字符,也就是目标文件夹名的组成部分
  • 替换为单个/,避免删除层级后出现连续斜杠的异常路径

执行上述代码后的输出结果符合预期:

[1] "d:/KeepItSimple/WAVs/filename.wav"        
[2] "d:/TryToKeepItSimple/WAVs/filename2.wav"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:04