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

Lua如何从请求URI的文件路径中删除指定动态文件夹

解决方案

你可以通过单次正则分组替换实现需求,不需要拆分路径再拼接,性能最优且能兼容path2、path3为任意非路径分隔符的动态值:

代码示例

local request_uri = "/path1/path2/path3/path4/path5/96_645.txt?lol=1"
-- 正则分组逻辑:捕获第一层路径+后续需保留的所有内容,跳过中间两层要删除的路径
local cleaned_uri = request_uri:gsub("^(/[^/]+/)([^/]+/[^/]+/)(.*)$", "%1%3")

print(cleaned_uri)

输出结果

/path1/path4/path5/96_645.txt?lol=1

规则说明

  • ^(/[^/]+/):匹配开头第一层路径(对应你场景里的/path1/),作为第一个捕获组保留
  • ([^/]+/[^/]+/):匹配接下来的两层路径(就是要删除的path2、path3),作为第二个捕获组直接忽略
  • (.*)$:匹配剩余的所有内容,包括后续路径、查询参数,作为第三个捕获组保留
  • 替换时用%1%3拼接第一、第三个捕获组,自动过滤掉中间要删除的两层路径

优势

  1. 单次字符串操作即可完成,性能远高于多次拆分、拼接处理
  2. 自动完整保留查询参数,不需要额外处理?后面的内容
  3. 适配path2、path3为任意非/字符的动态场景,无额外兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:30:05