Lua 按指定字元切割字串的方法gsub
阿新 • • 發佈:2022-05-17
原文連結
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函式,共三個引數:
- str是待分割的字串
- ‘[^’…reps…’]+'是正則表示式,查詢非reps字元,並且多次匹配
- 每次分割完的字串都能通過回撥函式獲取到,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