1. 程式人生 > 其它 >Lua 按指定字元切割字串的方法gsub

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