我想使用lua解析文本文件并将结果存储在两个数组中。我认为我的模式是正确的,但这是我第一次做这类事情。Lua模式匹配问题
fileio.lua:
questNames = {}
questLevels = {}
lineNumber = 1
file = io.open("results.txt", "w")
io.input(file)
for line in io.lines("questlist.txt") do
questNames[lineNumber], questLevels[lineNumber]= string.match(line, "(%a+)(%d+)")
lineNumber = lineNumber + 1
end
for i=1,lineNumber do
if (questNames[i] ~= nil and questLevels[i] ~= nil) then
file:write(questNames[i])
file:write(" ")
file:write(questLevels[i])
file:write("\n")
end
end
io.close(file)
这里的questlist.txt的一个小片段:
If the dead could talk16 Forgotten soul16 The Toothmaul Ploy9 Well-Armed Savages9
而这里的RESULTS.TXT的匹配片段:
talk 16 soul 16 Ploy 9 Savages 9
我RESULTS.TXT后,我的是:
If the dead could talk 16 Forgotten soul 16 The Toothmaul Ploy 9 Well-Armed Savages 9
所以我的问题是,我该以选择所有文字多达数使用哪种模式?
谢谢你的时间。
谢谢,'([^%d] +)(%d +)'是我所追求的。哦,我明白了,这是我第一次正确地使用lua,并且教程提到了它。我会把它拿出来。 –
什么教程?它对此有何评论? –
您可能是指'(.-)(%d +)'而不是'(。*)(%d +)'。 – lhf