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

Lua中从末尾开始匹配提取URL文件名的技术问题

解决Lua提取URL最后一个斜杠后文件名的问题

你需要的是匹配最后一个斜杠/之后的所有字符,不管文件名有没有后缀。之前用的^.+(%..+)$只针对带后缀的情况,而且捕获的是后缀部分而非整个文件名,自然无法覆盖无后缀的场景。

正确的匹配模式

直接使用[^/]+$即可,这个模式的逻辑很清晰:

  • [^/]:匹配任意非斜杠的字符
  • +:要求匹配至少一个这样的字符
  • $:锚定到字符串末尾,确保从最后一个位置往前匹配

示例代码

-- 测试用URL列表
local test_urls = {
    "url://xxxxx/yyyyy/123",
    "url://xxxxx/yyyyy/123.py",
    "url://xxxxx/yyyyy/123.dat"
}

-- 遍历提取文件名
for _, url in ipairs(test_urls) do
    local filename = url:match("[^/]+$")
    print(filename)
end

输出结果

123
123.py
123.dat

这个方法不管URL前面的结构有多复杂,都能精准提取最后一个斜杠后的完整文件名,完全覆盖你提到的无后缀、带不同后缀的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:15:43