Lua模式匹配

具有特殊意义的字符
( ) . % + - * ?[ ^ $

( )  捕获 :string.find("name= anna","(%a+)%s*=%s*(%a+)")//除了返回索引外还要返回用(%a+)捕获的两个单词
.    匹配任意字符
%     转义字符:%%匹配字符%
[]     匹配中括号内的字符串整体:类 [01] 匹配二进制数字
^      补集
+    匹配前一个字符一次或者多次 
*    匹配前一个字符0次或者多次
-    。。
?    匹配前一个字符0次或1次

例子

%a+ 匹配一个或者多个字母或者是一个单词
%d+ 匹配一个或者多个数字
 string.gsub("one,and","%a+","zzy")
%(%s*%)  匹配()之间的0个或者多个空白
/%*.*%*/  匹配第一个/*和最后一个/*的所有
/%*.-%*/  匹配第一个/*和第一个*/之间的部分

.-  匹配所有的字符

修饰模式
以^ 开头的模式只匹配目标串的开始部分
以$ 结尾的模式只匹目标串的结尾部分
^[+-]?%d+$ 检查目标穿是否是一个整数
%b 匹配对称的字符
 %b() 匹配一(开始以)结束的字符串
 %bxy ...
 
捕获
想达到\command{some text} --><command> some text</command>
可以这样实现:string.gsub(s,"\\(%a+){(.-)}","<%1>%2</%1>")
string.gsub(s,"^%s*(.-)%s*$","%1")  去除空格

转载于:https://www.cnblogs.com/zzy-frisrtblog/p/5939047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值