您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页lua string库模式匹配

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务