【问题标题】:Lua split string into 2d array in single stepLua一步将字符串拆分为二维数组
【发布时间】:2015-03-05 18:07:55
【问题描述】:

我有以下字符串

abc=1.2;bcd=2.4;xyz=10.9

我想把它拆分成下表

{ {"abc", "1.2}, {"bcd", "2.4"}, {"xyz", "10.9"} }

我目前正在这样做,首先将字符串拆分为;,然后再拆分为=

在 PHP 中,我可以使用以下 preg_match 模式在一个步骤中完成此操作而无需迭代。是否可以在 Lua 中做到这一点?

preg_match_all("/(?:([a-z]+)=([0-9.]+)(?:;|$))/", $a, $match, PREG_SET_ORDER);

【问题讨论】:

    标签: lua lua-table


    【解决方案1】:

    试试这个:

    s="abc=1.2;bcd=2.4;xyz=10.9"
    
    s=s..";"
    t={}
    for k,v in s:gmatch("(.-)=(.-);") do
        t[#t+1]={k,v}
    end
    

    【讨论】:

    • 谢谢。这比我目前的解决方案要好得多。
    • 目前我正在使用table.insert(t, {k, v})t[#t+1]={k,v}table.insert 更受欢迎吗?
    • @JoyceBabu,table.insert 很好。
    猜你喜欢
    • 2023-03-08
    • 2016-04-14
    • 1970-01-01
    • 2012-01-25
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多