Hello!
2012/11/2 azure wang:
> lua实现string的split功能使用哪个方式效率高一些,
>
> 1: string.find + string.sub 逐个找到分割字符然后通过string.sub提取
> 2: string.gmatch 然后for遍历匹配结果
> 3: string.gsub 通过函数插入到table中
>
我觉得,法 1 会最高效,因为是 Lua 内建函数,在 LuaJIT 2.0 中会有专门的 fast 版本的实现。我自己早先也做过一些
benchmark。而法 3 可能最低效,因为涉及高阶 Lua 函数和频繁的 Lua 函数调用。推荐法 1.
不过当 split 使用的模式比较复杂时,Lua 自身的模式语法可能不能表达,此时就只能使用 ngx.re API 的 pcre 正则了。
Best regards,
-agentzh