我有一个非常大的TSV文件。第一行是标题。如果字段为空白,则以下各行包含数据,后跟制表符或双标签,否则该字段可以包含字母数字或字母数字加标点符号。
例如:
Field1<tab>Field2<tab>FieldN<newline>
这些字段可能包含空格,标点符号或字母数字。唯一保持正确的是:
我已经尝试过在lua中进行模式匹配的许多组合,但从未完全正确。通常带有标点符号的字段(时间和日期字段)才是让我受益的字段。
我需要保留空白字段(带有双标签的字段),以便其余字段始终处于相同的索引值。
预先感谢!
尝试下面的代码:
function test(s)
local n=0
s=s..'\t'
for w in s:gmatch("(.-)\t") do
n=n+1
print(n,w)
end
end
test("10\t20\t30\t\t50")
test("100\t200\t300\t\t500\t")
它在字符串的末尾添加了一个制表符,以便所有字段都跟随一个制表符,即使最后一个也是如此。