【发布时间】:2019-10-03 12:57:13
【问题描述】:
如何用逗号分割带有空格和数字的字符串?
例如
str = "bar, bar123, bar 123, 123"
到一个包含
的表{"bar", "bar123", "bar 123", "123"}
【问题讨论】:
-
Split string in Lua?的可能重复
标签: string lua whitespace
如何用逗号分割带有空格和数字的字符串?
例如
str = "bar, bar123, bar 123, 123"
到一个包含
的表{"bar", "bar123", "bar 123", "123"}
【问题讨论】:
标签: string lua whitespace
简化模式匹配的关键是确保一致性。在这种情况下,这是通过确保每个字段都有一个终止逗号来实现的:
for w in (str..","):gmatch("(.-),%s*") do
print("["..w.."]")
end
【讨论】:
从 luarocks 安装 split 模块,然后
split = require("split").split
t = split(str, ', ')
for _, val in ipairs(t) do print(">" .. val .. "<") end
>bar<
>bar123<
>bar 123<
>123<
【讨论】:
你可以使用这个功能。
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”分割的表。
【讨论】:
如果其他人被谷歌引导到这里寻找基本 lua 的有效答案:
str_tbl = {}
for value in string.gmatch(str, '([^, *]+)') do
str_tbl[#str_tbl+1] = value
end
【讨论】: