首页 > 代码库 > lua拆分字符串实现及lua源码查看
lua拆分字符串实现及lua源码查看
lua字符串拆分实现
--字符串分割 function splitStr(content, token) if not content or not token then return end local strArray = {} local i = 1 local contentLen = string.len(content) while true do -- true是用来避开string.find函数对特殊字符检查 特殊字符 "^$*+?.([%-" local beginPos, endPos = string.find(content, token, 1, true) if not beginPos then strArray[i] = string.sub(content, 1, contentLen) break end strArray[i] = string.sub(content, 1, beginPos-1) content = string.sub(content, endPos+1, contentLen) contentLen = contentLen - endPos i = i + 1 end return strArray end
开始实现的时候,遇到一个问题,如果用 "++" 这样的特殊字符作为token发现,string.find有问题(遇到"+"也会返回,而不是遇到"++")
在网上查了一下,也没查到什么,既然有lua的源代码为什么不去看下,要检讨啊
后面查看lua 源代码的 lstrlib.c文件(这个是 lua string库的源代码), 发现string.find代码中有特殊字符检查,对特殊字符进行处理,所以导致了这个错误,
不过string.find函数可以传入 第4个参数 传入true 就能绕过特殊字符检查。所以就没问题了。
如果想查看lua的源代码,查看 l*lib.c 文件。 如: ltablib.c 就是 table的库代码 liolib.c 就是io文件操作的库代码
lua拆分字符串实现及lua源码查看
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。