打开/关闭菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

模块:SplitStringToTable

来自骷髅女孩Wiki
圈圈菌Q留言 | 贡献2025年1月11日 (六) 00:35的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

此模块的文档可以在模块:SplitStringToTable/doc创建

local p = {}
-- 转义正则表达式中的特殊字符
-- 将s字符串中所有的非字母数字字符(%W)替换为其转义形式(前加%)
local function escapePattern(s)
	return s:gsub("%W", "%%%1")
end
-- 将字符串str按指定分隔符delimiter(默认为空白%s)分割为多个部分,并酌情修剪trim(默认false)每个分割部分前后的空白字符
function p.splitStringIntoTable( str, delimiter, trim )
        if delimiter == nil then
                delimiter = "%s"
        end
        local t = {}
        -- 构建正则表达式模式pattern用于匹配分隔符间的字符串部分
        -- 使用gmatch函数按pattern遍历字符串,将每个匹配的部分插入
        -- 若trim为true,使用match函数去除每个部分的前后字符串
        local pattern = '[^' .. escapePattern( delimiter ) .. ']+'
        for s in string.gmatch( str, pattern ) do
                table.insert( t, trim and s:match("^%s*(.-)%s*$") or s )
        end
        return t
end
return p