基本函数

函数 描述 示例 结果
len 计算字符串长度 string.len(“abcd”) 4
rep 返回字符串s的n个拷贝 string.rep(“abcd”,2) abcdabcd
lower 返回字符串全部字母大写 string.lower(“AbcD”) abcd
upper 返回字符串全部字母小写 string.upper(“AbcD”) ABCD
format 返回一个类似printf的格式化字符串 string.format(“the value is:%d”,4) the value is:4
sub returns substring from index i to j of s string.sub(“abcd”,2) bcd
string.sub(“abcd”,-2) cd
string.sub(“abcd”,2,-2) bc
string.sub(“abcd”,2,3) bc
find 在字符串中查找 string.find(“cdcdcdcd”,”ab”) nil
string.find(“cdcdcdcd”,”cd”) 1    2
string.find(“cdcdcdcd”,”cd”,7) 7    8
gsub 在字符串中替换 string.gsub(“abcdabcd”,”a”,”z”); zbcdzbcd    2
string.gsub(“aaaa”,”a”,”z”,3); zzza    3
byte 返回字符的整数形式 string.byte(“ABCD”,4) 68
char
match
gmatch
将整型数字转成字符并连接
匹配出单条结果
匹配出多条结果
string.char(97,98,99,100)
string.match("a=svv12","=(%w+)")
string.gmatch( html1,"<img src='(.-)' />" );
abcd
svv12
匹配出所有img地址

基本模式串

字符类 描述 示例 结果
. 任意字符 string.find(“”,”.”) nil
%s 空白符 string.find(“ab  cd”,”%s%s”) 3    4
%S 非空白符 string.find(“ab  cd”,”%S%S”) 1    2
%p 标点字符 string.find(“ab,.cd”,”%p%p”) 3    4
%P 非标点字符 string.find(“ab,.cd”,”%P%P”) 1    2
%c 控制字符 string.find(“abcd\t\n”,”%c%c”) 5    6
%C 非控制字符 string.find(“\t\nabcd”,”%C%C”) 3    4
%d 数字 string.find(“abcd12″,”%d%d”) 5    6
%D 非数字 string.find(“12abcd”,”%D%D”) 3    4
%x 十六进制数字 string.find(“efgh”,”%x%x”) 1    2
%X 非十六进制数字 string.find(“efgh”,”%X%X”) 3    4
%a 字母 string.find(“AB12″,”%a%a”) 1    2
%A 非字母 string.find(“AB12″,”%A%A”) 3    4
%l 小写字母 string.find(“ABab”,”%l%l”) 3    4
%L 大写字母 string.find(“ABab”,”%L%L”) 1    2
%u 大写字母 string.find(“ABab”,”%u%u”) 1    2
%U 非大写字母 string.find(“ABab”,”%U%U”) 3    4
%w 字母和数字 string.find(“a1()”,”%w%w”) 1    2
%W 非字母非数字 string.find(“a1()”,”%W%W”) 3    4

用[]创建字符集,”-”为连字符,”^”表示字符集的补集

字符类 描述 示例 结果
% 转义字符 string.find(“abc%..”,”%%”) 4    4
string.find(“abc..d”,”%.%.”) 4    5

转义字符%

字符类 描述 示例 结果
[01] 匹配二进制数 string.find(“32123″,”[01]“) 3    3
[AB][CD] 匹配AC、AD、BC、BD string.find(“ABCDEF”,”[AB][CD]“) 2    3
[[]] 匹配一对方括号[] string.find(“ABC[]D”,”[[]]”) 4    5
[1-3] 匹配数字1-3 string.find(“312″,”[1-3][1-3][1-3]“) 1    3
[b-d] 匹配字母b-d string.find(“dbc”,”[b-d][b-d][b-d]“) 1    3
[^%s] 匹配任意非空字符 string.find(“  a  ”,”[^%s]“) 3    3
[^%d] 匹配任意非数字字符 string.find(“123a”,”[^%d]“) 4    4
[^%a] 匹配任意非字母字符 string.find(“abc1″,”[^%a]“) 4    4

用”()”进行捕获

字符类 描述 示例 结果
() 捕获字符串 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

Lua的string库函数列表的更多相关文章

  1. Lua的string库函数、lua中string的模式匹配

    --****************Lua的string库函数****************** --1.string.byte --string.byte (s [, i [, j]]) --取出 ...

  2. Lua的string和string库总结

    Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加 ...

  3. 在lua的string库和正则表达式

    一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作 ...

  4. lua的string库与强大的模式匹配

    lua原生解释器对字符串的处理能力是十分有限的,强大的字符串操作能力来自于string库.lua的string函数导出在string module中.在lua5.1,同一时候也作为string类型的成 ...

  5. Android错误:can not get file data of lua/start_v2.op [LUA ERROR] [string "require "lua/start_v2””] 已解决

    错误: can not get file data of lua/start_v2.op [LUA ERROR] [string "require "lua/start_v2””] ...

  6. lua中string.find()函数作用于汉字字符串

    lua中有这样一个库函数,string,find(),作用是在一个字符串中找到目标字符串的起始和结束位置(从1开始计数) 如:a,b=string.find("hello world&quo ...

  7. (转)Lua的table库函数insert、remove、concat、sort详细介绍

    原帖链接:http://www.jb51.net/article/64711.htm#comments 有增注标识的地方为额外注释,非原帖内容. 函数列表:(增注:只能用于数组!) table.ins ...

  8. Lua 中string.gsub(sourceString, pattern, replacementString) 返回值有两个

    这阵子在学习lua,今天看到string操作,书中描述string.gsub(sourceString, pattern, replacementString)返回一个字符串,但是我在实际操作中却发现 ...

  9. lua的string.gsub初使用

    今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下. 以下是lua5.1的官方文档介绍. string.gsub (s, pattern, repl [, n ...

随机推荐

  1. 案例分析作业——VS和VS Code

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 认真完成课程要求并提高相应能力 这个作业在哪个具体方面帮助我实现目标 学 ...

  2. oo第二单元博客总结

    P1 设计结构 三次作业的架构都没有较大的改动,基本上都是靠调度器接受输入的请求并放入队列,然后调度器根据不同的电梯的当前状态来把请求分配至不同电梯的请求队列中,最后电梯再根据自己的请求队列去运行.因 ...

  3. JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布

    快讯 JAP 1.0.1 正式发布 <JAP产品技术白皮书>正式发布.立即获取:白皮书 JAP 1.0.1 版本内容 新增功能/支持 添加 com.fujieid.jap.core.uti ...

  4. etcd简介及集群安装部署使用

    目录 1. 简介 2. Linux下载安装 3. 单机模式启动 4. 指定各集群成员的方式配置集群 5. 使用discovery service的方式配置集群 6. 集群模式下客户端命令行 7. et ...

  5. Day13_68_中止线程

    中止线程方法一 * 在线程类中定义一个bollean类型的变量,默认值设置为ture,如果想要中断线程,只需要将该boolean类型的变量设置为false就可以了 * 代码 package com.s ...

  6. Maven精简笔记

    Maven基本命令 1.mvn complile:编译命令,将src/main目录下的代码以及资源文件进行编译,在项目目录中生成target目录用来存放编译好的 class 文件等等 2.mvn cl ...

  7. 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明

    目录 (一)RESTful架构风格特点 1.统一接口风格 2.规范的HTTP请求方法 3.HTTP响应码 4.什么是无状态 (二)JSON数据格式说明 1.什么是JSON 2.JSON格式的特点 3. ...

  8. JavaScript动态设置div的样式的方法

    有时候需要根据需要动态设置div的样式,当然对于稍有经验的javascript开发者来说,这一切都是那么的简单,但是对于初学者或者说没有相关经验的开发者来说可能就是一个不大不小的难关,下面就通过实例简 ...

  9. HTML5中meta属性的使用详解

    meta属性在HTML中占据了很重要的位置.如:针对搜索引擎的SEO,文档的字符编码,设置刷新缓存等.虽然一些网页可能没有使用meta,但是作为正规军,我们还是有必要了解一些meta的属性,并且能够熟 ...

  10. hdu4869 费马小+快速幂

    思路:费马小+快速幂       无论怎么翻,每一步的1出现的可能个数的奇偶性是一样的,因为奇数 - 偶数 = 奇数,偶数 - 偶数 = 偶数,有一张牌被重叠了,那么就减去一个偶数2,所以怎么重叠都不 ...