--字符与ASC转换 -- 0 : 48 -> 9 : 57 -- a : 97 -> z : 122 -- A : 65 -> Z : 90 local str1 = "1" print(string.byte(str1)) --49 local str2 = "0123s" --默认返回第一个字符的ascii码 print(string.byte(str2)) --48 --调用测试 print(string.byte(str2,1,5)) --返回下标 1-5的ascii码
-- 0 : 48 -> 9 : 57 -- a : 97 -> z : 122 -- A : 65 -> Z : 90 --char函数, 根据ascii码返回对应字符 --输出ssm print(string.char(115)) print(string.char(115)) print(string.char(109)) --ssm
--查找日期模式匹配 local nowTime = os.time() print("当前时间戳 : "..nowTime) --1581926026 --时间戳转换成日期 print("格式化后的时间"..os.date("%Y%m%d%H%M%S",os.time())) --格式化后的时间20200217155346
--函数返回匹配到的子串的一份copy。 local str = "Hello World !" print(string.match(str,"He")) --He print(string.match(str,"Ha")) --nil
--string.find() local str = "Hello World !" print(string.find(str,"Hello")) --1 5 ,区分大小写 print(string.find(str,"o")) --3 3 ,第一个匹配到,就不会再去往后查找 print(string.find(str,"o",6)) --8 8 ,可以控制从哪个小标开始搜索
--string.gmatch(s,pattern) --返回一个迭代器函数,每次调用这个函数都会以 pattern 对 s 做匹配.并返回所捕捉的值 str = "Hello Word Lua" for s in string.gmatch(str,"%a+") do --print(s) end t = {} s = "from=word, to = to=Lua" for k, v in string.gmatch(s,"(%w+)=(%w+)") do t[k] = v end
--string.gsub() print(string.gsub("Lua is cute" ,"cute","great")) --Lua is great 1 print(string.gsub("Lua is cute cute" ,"cute","great")) --Lua is great great 2 --用第三个参数代替第二个参数,并返回替换次数 print(string.gsub("all lla","l","x",3)) --axx xla 3
小结:
find( ‘string‘ , ‘strsub‘ , index )` 从起始位置(index)查找子串返回位置 `match( ‘string‘ , ‘%s%d.....‘ )` 匹配捕获,返回子串的copy `gmatch( ‘string‘, ‘%s%d‘ )` 全局匹配捕获,返回一个函数提供所有子串 `gsub( ‘string‘ , ‘go‘ , ‘come‘ , count)` 替换字符串中所有go子串换count次
原文:https://www.cnblogs.com/shansm/p/12587251.html