[Lua]字符串及字符串匹配

本文介绍了Lua中关于字符串的一些基本操作,包括字符串索引、基本模式串、转义字符%的使用,以及如何通过[]创建字符集和用"()"进行捕获。通过实例展示了如何在字符串中找到匹配的部分,并捕获感兴趣的子串。此外,还提及了模式修饰符的使用和String库的扩展功能。
摘要由CSDN通过智能技术生成

--lua中字符串索引从前往后是1,2,……,从后往前是-1,-2……。

--string库中所有的function都不会直接操作字符串,只返回一个结果 

基本函数

函数

描述

示例

结果

len

计算字符串长度

string.len("abcd")

4

rep

返回字符串s的n个拷贝(repeat重复)

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

返回子字符串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

在字符串中查找,找到则返回匹配串开始索引和结束索引,否则返回nil。第三个参数是可选的:标示目标串中搜索的起始位置。 

string.find("cdcdcdcd","ab")

nil

string.find("cdcdcdcd","cd")

1 2

string.find("cdcdcdcd","cd",7)

7 8

gsub

全局字符串替换

在字符串中替换(substitution替换),有三个参数:目标串,模式串,替换串。第四个参数是可选的,用来限制替换的范围

string.gsub("abcdabcd","a","z");

zbcdzbcd 2

string.gsub("aaaa","a","z",3);

zzza 3

byte

返回字符的整数形式,字符->数字

string.byte("ABCD",4)

68

char

将整型数字转成字符并连接,数字->字符

string.char(97,98,99,100)

abcd

 基本模式串

正则表达式

字符类

描述

示例

结果

.

任意字符

string.find("",".")

nil

%s

空白符(space)

string.find("ab  cd","%s%s")

3 4

%S

非空白符

string.find("ab cd","%S%S")

1 2

%p

标点字符(punctuation)

string.find("ab,.cd","%p%p")

3 4

%P

非标点字符

string.find("ab,.cd","%P%P")

1 2

%c

控制字符(control)

string.find("abcd\t\n","%c%c")

5 6

%C

非控制字符

string.find("\t\nabcd","%C%C")

3 4

%d

数字(digit)

string.find("abcd12","%d%d")

5 6

%D

非数字

string.find("12abcd","%D%D")

3 4

%x

十六进制数字(hexadecimal)

string.find("efgh","%x%x")

1 2

%X

非十六进制数字

string.find("efgh","%X%X")

3 4

%a

字母(alpha)

string.find("AB12","%a%a")

1 2

%A

非字母

string.find("AB12","%A%A")

3 4

%l

小写字母(lowercase)

string.find("ABab","%l%l")

3 4

%L

大写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值