在Lua中提取字符串的最后一部分

时间:2017-05-22 20:57:51

标签: lua

我需要像这样提取字符串的最后一部分,

http://development.dest/show/images-345/name/289/

我只需要此部分289,我尝试使用string.match下一个模式。

string.match(url, "(%d+)(\/)$")

我在错误日志中收到此错误,

2017/05/22 20:53:04 [error] 31264#0: *5 failed to load external Lua file

我认为模式的最后一部分是错误的,但我不知道如何修复它((\/))。

2 个答案:

答案 0 :(得分:4)

来自Lua的错误消息是

renderPlot

表示invalid escape sequence near '"(%d+)(\/' 不是Lua字符串中的有效转义序列。

下面简单的模式很好用:

\/

如果最终斜杠是可选的,请使用

print(string.match(url, "(%d+)/$"))

答案 1 :(得分:4)

使用LuaSocket来处理网址。通过这种方式,您还可以轻松解析协议,查询等,而无需通过正则表达式地狱。

local url = assert(require"socket.url")

local parsed_url = url.parse"http://development.dest/show/images-345/name/289/"
local path       = url.parse_path(parsed_url.path)

print(path[#path])