歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Lua學習之字符串函數及模式匹配

Lua學習之字符串函數及模式匹配

日期:2017/3/1 9:43:03   编辑:Linux編程

對於簡單的函數,我只是將其以舉例的方式羅列一下,對於一些功能較多的函數,會舉例分析一下,並簡單總結,全文以舉例為驅動。

一,字符類基礎函數舉例介紹:

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 )

Lua 語言 15 分鐘快速入門 http://www.linuxidc.com/Linux/2013-06/86582.htm

Lua程序設計(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htm

Lua程序設計(第二版)閱讀筆記 http://www.linuxidc.com/Linux/2013-03/81834.htm

NetBSD 將支持用 Lua 腳本開發內核組件 http://www.linuxidc.com/Linux/2013-02/79527.htm

CentOS 編譯安裝 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+" ) 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個大的功能方面:查找,捕獲,替換。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103206p2.htm

Copyright © Linux教程網 All Rights Reserved