Я пытаюсь разобрать текстовый файл с помощью lua и сохранить результаты в двух массивах. Я думал, что мой образец будет правильным, но это первый раз, когда я сделал что-то подобное.Lua Pattern Matching issue
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