如何在Lua中将字符串分割成两个数组?

我正在使用 Lua,我有一个文件,想要将每一行拆分成两个不同的数组。我文件的每一行包含两个用空格隔开的字符串。

例如,如果我的文件包含

something something_else

我应该有

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

我尝试使用 split,例如

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
end

似乎是错误的,因为我知道 split 可能不会返回一个数组,但我知道它会返回不同的字符串。我应该如何处理它们?

点赞
用户1847592
用户1847592
对于文件 "myfile.txt" 中的每一行数据:

- 通过 `line:match'(.-)%s+(.*)'` 匹配整行的内容,将第一个空格之前的部分保存在变量 `v1` 中,将第一个空格之后的部分保存在变量 `v2` 中。
- 将 `v1` 插入到表 `tab_1` 中。
- 将 `v2` 插入到表 `tab_2` 中。
2013-07-22 10:17:57
用户2328287
用户2328287
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

使用 io.lines 函数按行读取文件 myfile.txt,对于每一行,用正则表达式匹配出第一个非空白字符以及之后的一个完整单词;如果匹配到了,将第一个单词插入 tab_1 数组,将第二个单词插入 tab_2 数组。如果匹配失败,则跳过此行不做处理。

2013-07-22 10:25:49