Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组

时间:2023-01-03 12:21:05
// 用指定字符或字符串分割输入字符串,返回包含分割结果的数组
// @function [parent=#string] split
// @param string input 输入字符串
// @param string delimiter 分割标记字符或字符串
// @return array#array 包含分割结果的数组

/*

用指定字符或字符串分割输入字符串,返回包含分割结果的数组


local input = "Hello,World"
local res = string.split(input, ",")
-- res = {"Hello", "World"}

local input = "Hello-+-World-+-Quick"
local res = string.split(input, "-+-")
-- res = {"Hello", "World", "Quick"}
*/


function string.split(input, delimiter)
input = tostring(input)
delimiter = tostring(delimiter)
if (delimiter=='') then return false end
local pos,arr = 0, {}
-- for each divider found
for st,sp in function() return string.find(input, delimiter, pos, true) end do
table.insert(arr, string.sub(input, pos, st - 1))
pos = sp + 1
end
table.insert(arr, string.sub(input, pos))
return arr
end
Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组