Lua的string库函数列表
基本函数
函数 | 描述 | 示例 | 结果 |
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库函数列表的更多相关文章
- Lua的string库函数、lua中string的模式匹配
--****************Lua的string库函数****************** --1.string.byte --string.byte (s [, i [, j]]) --取出 ...
- Lua的string和string库总结
Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加 ...
- 在lua的string库和正则表达式
一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作 ...
- lua的string库与强大的模式匹配
lua原生解释器对字符串的处理能力是十分有限的,强大的字符串操作能力来自于string库.lua的string函数导出在string module中.在lua5.1,同一时候也作为string类型的成 ...
- 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””] ...
- lua中string.find()函数作用于汉字字符串
lua中有这样一个库函数,string,find(),作用是在一个字符串中找到目标字符串的起始和结束位置(从1开始计数) 如:a,b=string.find("hello world&quo ...
- (转)Lua的table库函数insert、remove、concat、sort详细介绍
原帖链接:http://www.jb51.net/article/64711.htm#comments 有增注标识的地方为额外注释,非原帖内容. 函数列表:(增注:只能用于数组!) table.ins ...
- Lua 中string.gsub(sourceString, pattern, replacementString) 返回值有两个
这阵子在学习lua,今天看到string操作,书中描述string.gsub(sourceString, pattern, replacementString)返回一个字符串,但是我在实际操作中却发现 ...
- lua的string.gsub初使用
今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下. 以下是lua5.1的官方文档介绍. string.gsub (s, pattern, repl [, n ...
随机推荐
- 三、python学习-常用模块
一.常用模块 1.math数学模块 在计算机中,所有数值在计算机底层都是约等于机制,并不是精确地 import math #ceil() 向上取整操作 math.ceil(3.1)=>4 #fl ...
- 目标检测性能评价——关于mAP计算的思考
1. 基本要求 从直观理解,一个目标检测网络性能好,主要有以下表现: 把画面中的目标都检测到--漏检少 背景不被检测为目标--误检少 目标类别符合实际--分类准 目标框与物体的边缘贴合度高-- 定位准 ...
- “改造” VS Code 编辑器,一起写个插件吧!
作者:HelloGitHub-小夏(首发于 HelloGitHub 公众号) 作为一个靠代码作为"生计"的开发者,bug 写的好不好,编辑器真的很重要!那么 Visual Stud ...
- Spring Boot 实现配置文件加解密原理
Spring Boot 配置文件加解密原理就这么简单 背景 接上文<失踪人口回归,mybatis-plus 3.3.2 发布>[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不 ...
- Java 使用 Maven BOM 统一管理版本号
一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号.如果这些 JAR 包单独发布,然后直接通过版本号引用相应的 JAR 包,不同版本的兼容性维护将变得十分麻烦.为了 ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- 一台window服务器部署多个tomcat(超简单配置)!!!
1.首先准备好已经安装好的jdk环境,点击查看JDK安装. 2.准备好一个全新的tomcat,我这里使用的是tomcat-7.0.109.rar绿色版. 3.解压文件,并复制成三份.我这里是放在F:\ ...
- 解决github不能访问的问题
亲测有效,授之以鱼不如授之以渔,网上看了很多方法,也试着做了,很多都是治标不治本,最后找到个靠谱的方式:利用DNS查询工具,找到最快的IP地址,然后把host地址换成查询到的结果,方法如下: 在系统的 ...
- Java基础(面试复习整理)
基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...
- 06- Linux Ubuntu下sublime下载与使用与安装包
我有Linux下全套的安装包,如sublime,pycharm等.不用再苦逼的下软件了.需要的加我微信:chimu sublime text 3文本编辑器 启动命令:Linux命令行输入subl 或者 ...