使用lua实现split字符串分隔
程序员文章站
2022-07-05 08:52:27
lua并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是lua可以很容易地被扩展:由宿主语言(通常是c或c++)提供这些功能,lua可以使用它...
lua并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是lua可以很容易地被扩展:由宿主语言(通常是c或c++)提供这些功能,lua可以使用它们,就像是本来就内置的功能一样。lua只包括一个精简的核心和最基本的库。这使得lua体积小、启动速度快,从而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。习惯了其他语言的字符串分割函数,与是就自己写了一个,记录在此,以备使用.
下面在简单介绍下lua:
lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
lua脚本可以很容易的被c/c++代码调用,也可以反过来调用c/c++的函数,这使得lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替xml,ini等文件格式,并且更容易理解和维护。
lua由标准c编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
一个完整的lua解释器不过200k,在目前所有脚本引擎中,lua的速度是最快的。这一切都决定了lua是作为嵌入式脚本的最佳选择。
复制代码 代码如下:
function split(str, delim, maxnb)
-- eliminate bad cases...
if string.find(str, delim) == nil then
return { str }
end
if maxnb == nil or maxnb < 1 then
maxnb = 0 -- no limit
end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastpos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastpos = pos
if nb == maxnb then break end
end
-- handle the last field
if nb ~= maxnb then
result[nb + 1] = string.sub(str, lastpos)
end
return result
end
上一篇: Lua极简入门指南(一):函数篇
推荐阅读
-
C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例
-
C#中使用IFormattable实现自定义格式化字符串输出示例
-
PHP使用正则表达式实现过滤非法字符串功能示例
-
C语言使用strcmp()函数比较两个字符串的实现
-
javascript使用正则实现去掉字符串前面的所有0
-
php addslashes 利用递归实现使用反斜线引用字符串
-
通过栈实现简单综合计算器,使用字符串并不完善(中缀表达式)
-
sqlserver实现分隔字符串
-
mssql sqlserver sql对使用逗号分隔的字符串 转换为数据表的另类方法实现
-
javascript中使用正则表达式实现删除字符串中的前后空格