在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
lua的字符串操作lua的字符串绝大部分的操作 都可以用 string 库函数接口操作,只是因为lua的特性,在匹配操作上会有些不一样,这个文末会说一点。 另外 lua 的字符串是 从 下标 1 开始的,不是 0 开始。
函数操作: 1. 计算字符串长度 例如:string.len("abcd"); ----> 4
2. 返回字符串 s 的 n 个拷贝 例如:string.rep("abcd",2) ----> abcdabcd
3. 返回字符串的全部大写 例如:string.upper("AbcD") ----> ABCD
4. 返回字符串的全部小写 例如:string.lower("AbcD") ----> abcd
5. 字符串的拼接【字符串的格式化操作】 例如:string.format("the value is:%d",4) ----> the value is:4
6. 根据下标截取字符串 这个下标是取的 闭区间长度 ,string.sub(info, index, endindex) 例如:string.sub("abcd",2) ----> bcd string.sub("abcd",-2) ----> cd string.sub("abcd",2,-2) ----> bc string.sub("abcd",2,3) ----> bc
7. 在字符串中查找 string.find()
另外,参数 参数 如果子串 如果模式匹配子串被找到了,一个成功被找到的子串将会作为第三个返回值,放在两个索引返回值的后边而返回。
8. 在字符串中查找并替换 string.gsub(mainString,pattern,replaceString,num) 在字符串中替换。mainString 为要操作的字符串, pattern为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换) 例如:string.gsub("abcdabcd","a","z"); ----> zbcdzbcd 2
9. 返回字符串的ASCII码 string.byte() 例如:string.byte("ABCD",4) ----> 68
10. 将ASCII码变成 字符串 string.char() 例如:string.char(97,98,99,100) ----> abcd
11. 分割字符串 string.split(要分割的字符串, 分隔符) 例如:local result = string.split("1,2,3", ",") ----> result = {"1", "2", "3"}
12. 字符串反转 string.reverse(s) 例如:string.reverse("jayden") ----> nedyaj
13. 字符串匹配 string.match (s, pattern) 它不同于函数
string.find() 要返回匹配字符的索引,也不同于string.gmatch() 函数会返回一个迭代函数可以取到所有的匹配项, 这个函数它仅仅范回第一个匹配,简单易用,往往在一些实际应用中找到第一个匹配就够了,我们一起来看一下用法。
14. 字符串匹配迭代返回 string.gmatch (s, pattern) 匹配字符串s中的pattern , 返回一个迭代器函数, 每次调用该迭代器函数,返回下一个子串。
字符串拼接【字符串格式化】
例如
匹配用到的基本模式串 模式匹配函数 string.find, string.gmatch, string.gsub, string.match
转义字符%
用"()"进行捕获
()捕获字符串string.find("12ab","(%a%a)")3 4 ab
string.find("ab12","(%d%d)")3 4 12 模式修饰符
+表示1个或多个,匹配最多个string.find("aaabbb","(a+b)") 1 4 aaab
string.find("cccbbb","(a+b)") nil
-表示0个或多个,匹配最少个string.find("zzxyyy","(xy-)") 3 3 x string.find("zzzyyy","(x-y)") 4 4 y *表示0个或多个,匹配最多个string.find("mmmnnn","(m*n)")1 4 mmmb string.find("lllnnn","(m*n)") 4 4 n ?表示0个或1个 string.find("aaabbb","(a?b)") 3 4 ab string.find("cccbbb","(a?b)") 4 4 b |
请发表评论