用到了lua的操作字符串方法 string.find, string.sub 具体请看代码
-- 用指定字符串切割另一个字符串
local function strSplit(delimeter, str)
local find, sub, insert = string.find, string.sub, table.insert
local res = {}
local start, start_pos, end_pos = 1, 1, 1
while true do
start_pos, end_pos = find(str, delimeter, start, true)
if not start_pos then
break
end
insert(res, sub(str, start, start_pos - 1))
start = end_pos + 1
end
insert(res, sub(str,start))
return res
end
调用:
local function print_r(arr)
for k,v in pairs(arr) do
io.write("'" .. v .. "'" .. "\t")
end
io.write("\n")
end
print_r(strSplit(",", "a,b,c,123,456"))
print_r(strSplit(",", "abc,def,,,ghi,"))
print_r(strSplit(",", ",,,,,,,,"))
print_r(strSplit("---", "abcde---haha---12345"))
'a' 'b' 'c' '123' '456'
'abc' 'def' '' '' 'ghi' ''
'' '' '' '' '' '' '' '' ''
'abcde' 'haha' '12345'
That's all!