具有特殊意义的字符:
( ) . % + - * ?[ ^ $
( ) 捕获 :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") 去除空格