如何用分号在Lua中拆分字符串?
local destination_number="2233334;555555;12321315;2343242"
这里我们可以看到多次出现分号(;)但我只需要在第一次出现之前从上面的字符串输出。
尝试过的代码:
if string.match(destination_number, ";") then
for token in string.gmatch(destination_number, "([^;]+),%s*") do
custom_destination[i] = token
i = i + 1
end
end
输出:
2233334
我已经尝试过上面的代码,但新手到Lua脚本,所以无法获得准确的语法。
答案 0 :(得分:2)
如果你只想要第一次,那么这就有效:
print(string.match(destination_number, "(.-);"))
该模式显示:所有内容均为第一个分号,但不包括第一个分号。
如果你想要所有的出现,那么这是有效的:
for token in string.gmatch(destination_number, "[^;]+") do
print(token)
end
答案 1 :(得分:0)
我希望此代码能为您提供帮助:
function split(source, sep)
local result, i = {}, 1
while true do
local a, b = source:find(sep)
if not a then break end
local candidat = source:sub(1, a - 1)
if candidat ~= "" then
result[i] = candidat
end i=i+1
source = source:sub(b + 1)
end
if source ~= "" then
result[i] = source
end
return result
end
local destination_number="2233334;555555;12321315;2343242"
local result = split(destination_number, ";")
for i, v in ipairs(result) do
print(v)
end
--[[ Output:
2233334
555555
12321315
2343242
]]
现在result
是包含这些数字的表格。
答案 2 :(得分:0)
在这里,比你想象的容易:
for s in string.gmatch("2233334;555555;12321315;2343242", "[^;]+") do
print(s)
end