天天看点

aardio匹配问题以及编码问题

废话不多说,直接开干!

string.gmatch

string.matches

1.string.match 模式匹配
string.match(str, pattern, pos)
第一个参数指定目标字符串,每二个参数指定查找模式串。第三个参数可选指定开始位置
           
2.string.gmatch 全局模式匹配
func = string.gmatch(str, pattern)
string.gmatch()创建并返回一个迭代器,可用于for语句中迭代的进行全局查找。
string.gmatch 全局查找子串,每个括号指定的一个分组匹配(对应一个分组捕获,在泛型for中增加一个返回值)
与 string.match 不同,string.gmatch发现一个完整匹配以后,会继续向后查找,
           
\是转义符 
\s表示空白字符
 \s*表示空白字符出现一次或多次 
\"表示引号
( \转义符的使用与普通字符串相同 )
?表示出现一次或零次
 \w表示字母和数字
\.表示.(因为.是特殊字符,所以需要\还原)
[]是一个自定义的字符类,如[0-9]匹配所有数字 
+是修饰符表示前面的字符出现一次或多次
           

题外话

ardio内核现在使用的代码是utf8,如果返回的编码是gbk的,显示出来就是乱码。
解决方法:r=string.fromto(r,936,65001); //GBK转UTF8
其中936是GBK的代码页,65001是utf8的代码页。
           
aardio匹配问题以及编码问题