lua split方法实现

最近在做lua开发,需要用到字符串切割,奈何lua没有相关函数能实现,网上查到的一些办法也不尽人意,总是出现各种bug,大部分资料提供的方法函数只支持单字符切割,都没能达到预期效果,所以自己写了个lua split方法,支持存在连续目标字符串的切割,连续目标字符串之间不留空

function split(str, sep)
local t={}
local _start=0;
local _end=0;
--字符串记录游标
local last_end=_end;
while true do
        _start,_end=string.find(str,sep,last_end+1)
        if _start ~= nil and _end ~=nil then
                --此处防止连续出现目标字符串,导致记录中出现空字符串的情况
                if _start ~= last_end+1 then
                        table.insert(t,string.sub(str,last_end+1,_start-1))
                end
                --游标后移
                last_end=_end
        else
                table.insert(t,string.sub(str,last_end+1,string.len(str)))
                break
        end
end
return t;
end

要特别注意,lua中字符下标是从1开始,不是从0开始的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值