我需要像这样提取字符串的最后一部分,
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
我认为模式的最后一部分是错误的,但我不知道如何修复它((\/)
)。
答案 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])