Lua 按指定字符切割字符串的方法gsub

原文链接

1. 利用string库的gsub函数

function split( str,reps )
    local resultStrList = {}
    string.gsub(str,'[^'..reps..']+',function ( w )
        table.insert(resultStrList,w)
    end)
    return resultStrList
end

string库的gsub函数,共三个参数:

  1. str是待分割的字符串

  2. ‘[^’…reps…’]+'是正则表达式,查找非reps字符,并且多次匹配

  3. 每次分割完的字符串都能通过回调函数获取到,w参数就是分割后的一个子字符串,把它保存到一个table中

 

2.

复制代码
function string.split(input, delimiter)
    input = tostring(input)
    delimiter = tostring(delimiter)
    if (delimiter=='') then return false end
    local pos,arr = 0, {}
    for st,sp in function() return string.find(input, delimiter, pos, true) end do
        table.insert(arr, string.sub(input, pos, st - 1))
        pos = sp + 1
    end
    table.insert(arr, string.sub(input, pos))
    return arr
end
复制代码

 

3.

复制代码
function getSplitStr(logStr,breakpointsStr,t)
    local i = 0
    local j = 1
    local z = string.len(breakpointsStr)
    while true do
        i = string.find(logStr, breakpointsStr, i + 1)  -- 查找下一行
        if i == nil then
            table.insert(t, string.sub(logStr,j,-1))
            break 
        end
        table.insert(t, string.sub(logStr,j,i - 1))
        j = i + z
    end 
    return t
end
复制代码

 

posted @   青丝·旅人  阅读(1567)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示