lua - 用逗号分隔带有空格和数字的字符串

我如何用逗号分割带有空格和数字的字符串?

例:

str = "bar, bar123, bar 123, 123"

转化为包含以下内容的表格

{"bar", "bar123", "bar 123", "123"}
点赞
用户107090
用户107090

简化模式匹配的关键是要确保统一性。在这种情况下,可以通过确保每个字段都有一个终止逗号来实现这一点:

for w in (str..","):gmatch("(.-),%s*") do
   print("["..w.."]")
end
2019-05-16 10:06:48
用户7552
用户7552

从luarocks安装split模块,然后:

split = require("split").split
t = split(str, ', ')
for _, val in ipairs(t) do print(">" .. val .. "<") end
>bar<
>bar123<
>bar 123<
>123<
2019-05-16 19:32:06
用户11043724
用户11043724

你可以使用这个函数。

function string:split(_sep)
    local sep, fields = _sep or ":", {}
    local pattern = string.format("([^%s]+)", sep)
    self:gsub(pattern, function(c) fields[#fields+1] = c end)
    return fields
end

这将返回一个由 '_sep' 分隔的表格。

2019-05-20 09:18:03
用户14171100
用户14171100

如果有人是通过谷歌搜索基本 Lua 的可行答案而来到这里的,请看下面的代码:

str_tbl = {}
for value in string.gmatch(str, '([^, *]+)') do
  str_tbl[#str_tbl+1] = value
end
2020-08-26 15:11:30