首页 > 其他 > 详细

Lua的字符串进阶

时间:2020-03-28 15:03:15      阅读:61      评论:0      收藏:0      [点我收藏+]

1 字符与Ascii转换

--字符与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码

 

2 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

 

3 日期格式化

--查找日期模式匹配
local nowTime = os.time()
print("当前时间戳 : "..nowTime)    --1581926026
--时间戳转换成日期    
print("格式化后的时间"..os.date("%Y%m%d%H%M%S",os.time()))        --格式化后的时间20200217155346

 

字符串的匹配模式

技术分享图片

 

 技术分享图片

 

 

4 string.macth()

--函数返回匹配到的子串的一份copy。
local str = "Hello World !"
print(string.match(str,"He"))   --He
print(string.match(str,"Ha"))   --nil

 

5 string.find()

--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 ,可以控制从哪个小标开始搜索

 

6 string.gmatch()

--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

 

7 string.gsub()

--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次

Lua的字符串进阶

原文:https://www.cnblogs.com/shansm/p/12587251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!