如何用逗号分隔带有空格和数字的字符串?
例如
str = "bar, bar123, bar 123, 123"
到包含
的表中{"bar", "bar123", "bar 123", "123"}
答案 0 :(得分:2)
简化图案匹配的关键是确保均匀性。在这种情况下,这是通过确保每个字段都有一个终止逗号来实现的:
for w in (str..","):gmatch("(.-),%s*") do
print("["..w.."]")
end
答案 1 :(得分:0)
从羽扇上安装split
模块,然后
split = require("split").split
t = split(str, ', ')
for _, val in ipairs(t) do print(">" .. val .. "<") end
>bar<
>bar123<
>bar 123<
>123<
答案 2 :(得分:0)
您可以使用此功能。
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'拆分的表。
答案 3 :(得分:0)
如果Google将其他人带到这里寻找基本lua的有效答案:
str_tbl = {}
for value in string.gmatch(str, '([^, *]+)') do
str_tbl[#str_tbl+1] = value
end