设为首页 加入收藏

TOP

Lua学习之字符串函数及模式匹配
2014-11-23 22:22:21 来源: 作者: 【 】 浏览:9
Tags:Lua 习之 字符串 函数 模式 匹配

对于简单的函数,我只是将其以举例的方式罗列一下,对于一些功能较多的函数,会举例分析一下,并简单总结,全文以举例为驱动。


一,字符类基础函数举例介绍:


string.len( ‘string’ )


string.lower( ‘string’ )


string.upper( ‘string’ )


string.rep( ‘a’ , 5 ) ==> aaaaa


string.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 )


二,模式匹配(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+" ) do


words[#words+1] = w


end


总结一下:各模式匹配函数的基本简单功能


find( 'string' , 'strsub' , index ) 从起始位置(index)查找子串返回位置


match( 'string' , '%s%d.....' ) 匹配捕获,返回子串的copy


gmatch( 'string', '%s%d' ) 全局匹配捕获,返回一个函数提供所有子串


gsub( 'string' , 'go' , 'come' , count) 替换字符串中所有go子串换count次


其实,差不多是根据函数返回值不同,则大约功能相差一些,参数排布相似,并且都是遍历查找功能。那么上面大致的三类就引领了模式匹配3个大的功能方面:查找,捕获,替换。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇正则表达式及PHP中的正则函数 下一篇Python学习笔记-SSH连接

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: