首页 / 操作系统 / Linux / Lua学习之字符串函数及模式匹配
对于简单的函数,我只是将其以举例的方式罗列一下,对于一些功能较多的函数,会举例分析一下,并简单总结,全文以举例为驱动。一,字符类基础函数举例介绍:string.len( ‘string’ ) string.lower( ‘string’ )string.upper( ‘string’ )string.rep( ‘a’ , 5 ) ==> aaaaastring.sub( ‘string’ , I , j )string.sub( s, string.find(s, "world") )string.sub函数会提取子串by子串所在字符串的位置下标string.char() string.byte()string.format( ‘%02d:%02d:%02d’ , d , m , y ) Lua 语言 15 分钟快速入门 http://www.linuxidc.com/Linux/2013-06/86582.htmLua程序设计(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htmLua程序设计(第二版)阅读笔记 http://www.linuxidc.com/Linux/2013-03/81834.htmNetBSD 将支持用 Lua 脚本开发内核组件 http://www.linuxidc.com/Linux/2013-02/79527.htmCentOS 编译安装 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htm二,模式匹配(pattern-matching)函数举例介绍:字符串=>被查找的字符串;子串=>要查找的字符(串):string.find( "string", "substr" ) 返回 子串的前后位置string.find( "string", "c" ) 返回相同位置由此,find函数简单查找子串(包含字符) 返回值是2个值;没有找到,即返回nil。 string.find( s, "substr", index ) 该函数的第三个参数是开始查找下标 string.match()函数返回匹配到的子串的一份copy。string.match( "string" , "%d+/%d+%d+") -->12/23/34 string.gsub( "Lua is cute", "cute", "great" ) -->Lua is great用第三个参数替换第一个参数中所有出现的第二个参数,并返回整串以及发生的实际替换次数。
string.gsub( "all lla" , "l" , "x" , 3 ) -->axx xla 第四个参数限制替换的次数 string.gmatch(s, "%a") 将返回一个函数,遍历到所有的模式指定子串by返回的函数。words = {}for w in string.gmatch( s, "%a+" ) dowords[#words+1] = wend 总结一下:各模式匹配函数的基本简单功能find( "string" , "strsub" , index ) 从起始位置(index)查找子串返回位置match( "string" , "%s%d....." ) 匹配捕获,返回子串的copygmatch( "string", "%s%d" ) 全局匹配捕获,返回一个函数提供所有子串gsub( "string" , "go" , "come" , count) 替换字符串中所有go子串换count次其实,差不多是根据函数返回值不同,则大约功能相差一些,参数排布相似,并且都是遍历查找功能。那么上面大致的三类就引领了模式匹配3个大的功能方面:查找,捕获,替换。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/103206p2.htm