2013-07-22 144 views
1

我正在使用Lua,我有一个文件,我想将每行分成两个不同的数组。我的文件的每一行都包含两个用空格分隔的字符串。 例如,如果我的文件包含如何在Lua中将字符串拆分为两个数组?

something something_else 

我应该有

tab_1[1] = something 
tab_2[1] = something_else 

我试着用拆分像

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 

它似乎是错误的,因为我知道,拆分可能不会返回数组,但我知道它返回不同的字符串。我如何管理他们。

+0

'tab_1中[1]'和'tab_2 [2]'?这似乎有点奇怪。另外,从你的代码看起来更像是你想'tab_1 [1]'和'tab_2 [1]'。 – ComicSansMS

+0

是的,我错了那个ouuups它是tab_1 [1]和tab_2 [1] – Hobbit1919

回答

1
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 
+0

实际上没有按预期工作实际上我不知道我是否足够清楚,但我的文件包含由空格隔开的网址和IP地址这不仅仅是简单的话。第二个变量v2没有得到任何值 – Hobbit1919

+0

请从文本文件中显示一个字符串示例,其中'v2'对我的代码没有任何价值。 –

+0

http_url 91.25.36.85 – Hobbit1919

1
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 
相关问题