使用lua实现split字符串分隔_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 

时间: 2024-09-28 03:24:02

使用lua实现split字符串分隔_Lua的相关文章

Lua教程(五):C/C++操作Lua数组和字符串示例_Lua

本文将介绍如何在C/C++里面操作Lua的数组和字符串类型,同时还会介绍如何在C/C++函数里面存储Lua状态(registry和upvalue),而registry在使用C/C++自定义类型时非常有用,可以方便地为userdata指定metatable. C/C++操作Lua数组 Lua数组Overview 在Lua里面,数组只不过是key为整数的table而已.比如一个table为array = {12,"Hello", "World"},它是一个数组,可以用下

C#中Split分隔字符串的应用(C#、split、分隔、字符串)

1.用字符串分隔: using System.Text.RegularExpressions; string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach (string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbccc 

Lua获取utf8字符串长度和字符串截取并用...代替_Lua

一.LUA获取utf8字符串长度 复制代码 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; while left ~= 0 do local tmp=string.byte(str,-left);

Lua中操作字符串的基本方法整理_Lua

 字符串是一个字符序列,以及控制字符.字符串可以用三种形式被初始化,其中包括:     单引号之间的字符     双引号之间的字符     [] 之间的字符[[和]] 对于上述三种形式的一个例子如下所示. 复制代码 代码如下: string1 = "Lua" print("\"String 1 is\"",string1) string2 = 'Tutorial' print("String 2 is",string2) st

Lua实现split函数_Lua

function split(s, delim) if type(delim) ~= "string" or string.len(delim) <= 0 then return end local start = 1 local t = {} while true do local pos = string.find (s, delim, start, true) -- plain find if not pos then break end table.insert (t,

lua可以计算字符串的hash值么?

问题描述 lua可以计算字符串的hash值么? 小弟在用lua写个脚本需要根据字符串的哈希值进行分组,找了半天也没找到相关的库函数,请问使用lua怎么能得出字符串的hash值呢?

Lua中操作字符串的基本方法整理

  这篇文章主要介绍了Lua中操作字符串的基本方法整理,是Lua入门学习中的基础知识,需要的朋友可以参考下 字符串是一个字符序列,以及控制字符.字符串可以用三种形式被初始化,其中包括: 单引号之间的字符 双引号之间的字符 [] 之间的字符[[和]] 对于上述三种形式的一个例子如下所示. 代码如下: string1 = "Lua" print(""String 1 is"",string1) string2 = 'Tutorial' print(&

Lua获取utf8字符串长度和字符串截取并用...代替

  这篇文章主要介绍了Lua获取utf8字符串长度和字符串截取并用...代替,本文直接给出两个函数的实现代码,需要的朋友可以参考下 一.LUA获取utf8字符串长度 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf

string-在android中split字符串的问题

问题描述 在android中split字符串的问题 在android应用中split字符串,代码如下,但是总是崩溃,说PatternSyntaxException异常. String quotes_string = "1.agshjdgasfghsfjhsdfhjsfhjgj.#**#2.dfjngdhfkgjkfglkhjkh.#**#3.fdghjkhdgkklf"; String[] apps = QuotesActivity.quotes_string.split("