Это решение ограничено по объему и не охватывает все сложности входной строки.Простое сопоставление с образцом может генерировать таблицы, которые вы ищете, но используйте этот код для создания лучшего / надежного регулярного выражения для разнообразия ваших строк
s = "hotkey=F4,value=,autoSend=false, hotkey=Shift+F9,value=,autoSend=false, hotkey=F5,value=,autoSend=false"
local words = {}
for w in s:gmatch("(hotkey=%g-,value=%g-,autoSend=%w*)") do
-- Split string in more managebale parts
-- i-g w = 'hotkey=F4,value=,autoSend=false, hotkey=Shift+F9'
-- Extract indivisual k,v pairs and insert into table as desired
local _hotkey = string.match(w,"hotkey=(%g-),")
local _value = string.match(w,"value=(%g-),")
local _autoSend = string.match(w,"autoSend=(%w+)")
table.insert(words,{hotkey=_hotkey, value=_value, autoSend=_autoSend})
end
for _, w in ipairs(words) do
for k, v in pairs(w) do
print(k .. ':' .. v)
end
end
Объяснение регулярного выражения
(): Строка захвата
% g: печатаемые символы, за исключением пробелов
% w: буквенно-цифровые символы
*: 0 или более повторений
-: 0 или более ленивых повторений