String 如何在Lua中将字符串拆分为两个数组?
我正在使用Lua,我有一个文件,我想把每一行分成两个不同的数组。我的文件的每一行包含两个用空格分隔的字符串。 例如,如果我的文件包含String 如何在Lua中将字符串拆分为两个数组?,string,lua,String,Lua,我正在使用Lua,我有一个文件,我想把每一行分成两个不同的数组。我的文件的每一行包含两个用空格分隔的字符串。 例如,如果我的文件包含 something something_else 我应该 tab_1[1] = something tab_2[1] = something_else 我试着用split-like file =io.open("myfile.txt", "r") for line in file:lines() do line = file:read() for value
something something_else
我应该
tab_1[1] = something
tab_2[1] = something_else
我试着用split-like
file =io.open("myfile.txt", "r")
for line in file:lines() do
line = file:read()
for value in split(line," ")
table.insert(tab_1,value[i])
table.insert(tab_2,value[i])
i=i+1
end
这似乎是错误的,因为我知道split可能不返回数组,但我知道它返回不同的字符串。如何管理它们。
选项卡1[1]
和选项卡2[2]
?这似乎有点奇怪。另外,从你的代码来看,它似乎更像是你想要的tab_1[1]
和tab_2[1]
。是的,我错了,它是tab_1[1]和tab_2[1]实际上没有像预期的那样工作。实际上,我不知道我是否足够清楚,但我的文件包含URL和ip地址,它们之间用空格隔开,这不仅仅是简单的单词。第二个变量v2没有获取任何值请显示文本文件中的字符串示例,其中v2
对我的代码没有获取任何值。我无法按原样放置http url,因为它将是我的链接。用另一行代码测试它,并给出问题所在的链接。你的代码很好@Egor我的代码出了问题,我修复了它,谢谢你的时间和帮助
for line in io.lines'myfile.txt' do
local v1, v2 = line:match'(.-)%s+(.*)'
table.insert(tab_1,v1)
table.insert(tab_2,v2)
end
for line in io.lines('myfile.txt') do
local v1, v2 = string.match(line, "^(%S+)%s+(%S+)$")
if v1 and v2 then
table.insert(tab_1,v1)
table.insert(tab_2,v2)
else
-- wrong line
end
end