Lua 特定字元擷取字串
阿新 • • 發佈:2019-02-10
記錄下工作中用到Lua的一個簡單功能需求:
如下字串:"aa,bb;cc,dd;ee,ff;gg,hh;"
轉成:{"aa" = bb, "cc" == dd, "ee" == ff, "gg" == hh}表形式。
這裡的分號和逗號我直接寫在了方法裡,你也可以用引數的形式傳入,這樣就比較靈活,當然特定字串也不限於分號和逗號……function combination(sourcestr) if not sourcestr or sourcestr == "" then print("特定字串轉成指定表出錯!") return end local outsplitchar = ";" local innersplit = "," local function inner_get_table_from_split_string(src, splitchar) local splitlist = {} string.gsub(src, '[^' .. splitchar ..']+', function(value) table.insert(splitlist, value) end) return splitlist end local out_tbl = inner_get_table_from_split_string(sourcestr, outsplitchar) local tmp={} for _, value in pairs(out_tbl) do local tmp_tbl = inner_get_table_from_split_string(value, innersplit) local inner_tbl = {} inner_tbl["" .. tmp_tbl[1]] = tonumber(tmp_tbl[2]) tmp[#tmp + 1] = inner_tbl end local final_tbl = {} for k, v in pairs(tmp) do final_tbl[table.keys(v)[1]] = table.values(v)[1] end return final_tbl end