Разделить строку с помощью string.gmatch () в Lua
Здесь есть некоторые обсуждения и служебные функции для разделения строк, но мне нужна специальная однострочная для очень простой задачи.
У меня есть следующая строка:
local s = "one;two;;four"
И я хочу разделить его на";"
, Я хочу, в конце концов, иди получить{ "one", "two", "", "four" }
в ответ.
Итак, я попытался сделать:
local s = "one;two;;four"
local words = {}
for w in s:gmatch("([^;]*)") do table.insert(words, w) end
Но результат (words
таблица){ "one", "", "two", "", "", "four", "" }
, Это, конечно, не то, что я хочу.
Теперь, как я заметил, здесь есть некоторые дискуссии о разбиении строк, но в них есть «длинные» функции, и мне нужно что-то сжатое. Мне нужен этот код для программы, в которой я показываю достоинства Lua, и если я добавлю длинную функцию, чтобы сделать что-то настолько тривиальное, это пойдет против меня.