You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua中如何分割字符串并将内容存入键为数字、值为名称的table?

实现方案

你可以直接使用Lua内置的string.gmatch全局模式匹配实现需求,不需要额外编写字符串分割函数,适配你给出的字符串格式的代码如下:

str = "23 = John, 45 = Karl, 6 = Chloe, 34 = Sarah"
local result = {}

-- 按规则匹配键值对
for id_str, name in string.gmatch(str, "(%d+)%s*=%s*([^,]+)") do
    -- 把id转为数字类型作为键,同时去除姓名首尾多余空格
    result[tonumber(id_str)] = string.match(name, "^%s*(.-)%s*$")
end

你可以用以下代码验证输出结果:

for k, v in pairs(result) do
    print(k, v)
end

输出效果和你需求的一致:

23  John
45  Karl
6   Chloe
34  Sarah

匹配规则说明

  • (%d+):捕获连续数字串,对应你的数字键
  • %s*=%s*:匹配等号及两侧任意数量的空格,忽略格式差异
  • ([^,]+):捕获所有非逗号的字符,对应姓名字段
  • 最后对姓名做首尾去空处理,避免结果中残留多余空白字符

内容的提问来源于stack exchange,提问作者Glupschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:45:00