在开发过程中,经常会用到字符串分割,如C#中的string.Split函数,把一个字符串按某个子字符串分割成一个字符串数组。
基本思想:
使用Lua自带的string.gmatch()函数实现,此函数可以对一个字符串做正则表达式匹配,返回一个迭代器。
-- 分割字符串
---@param str string 元字符串
---@param seq string 分割字符
---@return table
function Common.StringSplit(str,seq)
if str == nil or type(str) ~= "string" then
return nil
end
if pattern == nil then
return str
end
local r = {}
for word in string.gmatch(str,"[^{"..seq.."}*]+") do
table.insert(r,word)
end
return r
end