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函数,共三个参数:
- 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具