lua 获取文件名和扩展名

简介: local str = "aaa.bbb.bbb.txt" --获取文件名 function getFileName(str) local idx = str:match(".+()%.
local str = "aaa.bbb.bbb.txt"

--获取文件名
function getFileName(str)
    local idx = str:match(".+()%.%w+$")
    if(idx) then
        return str:sub(1, idx-1)
    else
        return str
    end
end

--获取扩展名
function getExtension(str)
    return str:match(".+%.(%w+)$")
end

ngx.say("源字符串:"..str)
ngx.say("====================")
ngx.say("文件名:"..getFileName(str))
ngx.say("====================")
ngx.say("扩展名:"..getExtension(str))

 URL加码、解码

--解码
function decodeURI(s)
    s = string.gsub(s, '%%(%x%x)', function(h) return string.char(tonumber(h, 16)) end)
    return s
end

--加码
function encodeURI(s)
    s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
    return string.gsub(s, " ", "+")
end

 

相关文章
|
开发者 Python
【python圣诞树的实现】
【python圣诞树的实现】
454 0
|
Kubernetes API 调度
Kubernetes必备知识: CNI
CNI的全称是 Container Network Interface,即容器网络的 API 接口。 它是 K8s 中标准的一个调用网络实现的接口。Kubelet 通过这个标准的 API 来调用不同的网络插件以实现不同的网络配置方式。实现了这个接口的就是 CNI 插件,它实现了一系列的 CNI API 接口。常见的 CNI 插件包括 Calico、flannel、Terway、Weave Net 以及 Contiv。
2456 0
Kubernetes必备知识: CNI
|
SQL 人工智能 自然语言处理
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
|
定位技术
wgs84和wgs84web如何转换?
wgs84和wgs84web如何转换?
1868 60
|
存储 网络协议 算法
OSPF基本概念解析:从零开始理解
OSPF基本概念解析:从零开始理解
618 0
|
JSON 网络协议 NoSQL
|
前端开发 Java 开发工具
盘点Java GUI框架
盘点Java GUI框架
1214 0
|
JavaScript
无法安装Vue脚手架 npm install @vue/cli -g
无法安装Vue脚手架 npm install @vue/cli -g
734 0
|
C++
[Qt5&VS] VS编译生成Qt的ui_头文件
[Qt5&VS] VS编译生成Qt的ui_头文件
1288 0
|
NoSQL C语言 C++
Vscode 重定向 .exe 文件生成位置
修改 vscode 默认 .exe 文件生成位置
3088 4
Vscode 重定向 .exe 文件生成位置