我想在lua表中获取字段的最后4个字符。
我的csv文件如下所示: 1234,http://myurl.com
local list = {}
for line in io.lines("x.csv") do
local mediaId, fURL = line:match("([^,]+),([^,]+)")
list[#list + 1] = { mediaId = mediaId, fURL = fURL }
end
print(list[1].mediaId) -- 1234
print(list[1].fURL) -- http://myurl.com
print(list[1].fURL.tostring().sub(list[1].fURL.tostring().len() - 4)) -- expected result: last 4 character of string, eg. .com
我现在需要的是最后4个字符。它们是什么并不重要,不需要对最后4个字符进行任何检查。我上面的代码导致"尝试调用字段' tostring' (零值)"错误。 我需要做些什么来纠正它?
答案 0 :(得分:3)
您可以将它们存储为表格中的新键(使用的函数是string.sub
):
for line in io.lines("x.csv") do
local mediaId, fURL = line:match("([^,]+),([^,]+)")
list[#list + 1] = { mediaId = mediaId, fURL = fURL, last = fURL:sub(-4) }
end
并在循环之外引用它们:
print( list[1].last )
答案 1 :(得分:2)
local bla = string.len(tostring(list[1].fURL)) - 3
print(string.sub(tostring(list[1].fURL), bla)) -- last 4 character, yes minus 3 = last 4 character.