lua string库模式匹配

print(string.find("12ab","%a%a"))

print(string.find("12ab","(%a%a)"))

print(string.find("12ab","[1-3]([1-3])(%a%a)"))

结果:

3   4   -- 简单的模式匹配
3   4   ab  -- 用[]创建字符集,"-"为连字符,"^"表示字符集的补集
1   4   2   ab  -- 用"()"进行捕获,加了()能将捕获返回出来
[Finished in 0.1s]

基本模式串

【基本模式串】

字符类 描述  示例  结果
.   任意字符    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

模式修饰符


修饰符 描述  示例  结果
+   表示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个或1string.find("aaabbb","(a?b)")   3 4 ab
string.find("cccbbb","(a?b)")   4 4 b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值