Lua语法 模式

2020-01-07  本文已影响0人  白小白152

1:Lua语言中模式使用百分号作为转义符(类似于正则表达式)

%@:匹配所有的字母
%.:匹配一个点
%c:匹配控制字符
%d:匹配数字
%g:匹配除空格外的可打印字符
%l:匹配小写字母
%p:匹配标点符号
%s:匹配空白字符
%u:匹配大写字母
%w:匹配字母和数字
%x:匹配16进制数字

字符分类:模式中能够与一个特定集合中的任意字符相匹配的一项
“%d%d/%d%d/%d%d%d%d”来匹配dd/mm/yyyy格式的日期

2:可以使用字符集来创建自定义的字符分类,只需要在方括号内将单个字符和字符分类的组合起来即可,

[%w_]:匹配所有以下划线结尾的字母和数字
[01]:匹配二进制数字
[%[%]]:匹配方括号

3:在字符集前加一个补字符^就可以的带这个字符集对应的补集
模式[^0-7]代表所有八进制数字以外的字符
模式[^\n]代表除换行符以外的其他字符

修饰符:
+ 重复一次或多次
* 重复零次或多次
- 重复零次或多次(最小匹配)
?可选(出现零次或一次)

修饰符 + 匹配原始字符分类中的一个或多个字符,它总是获取与模式相匹配的最长序列,例如模式“%a+”代表一个或多个字母(单词)

local str = "one,and two;and three"
print("替换字符串后为:",string.gsub(str, "%a+","word"))
local str1 = "the number 1298 is even"
print("匹配后的字符串为:",string.match(str1,"%d+"))
输出结果为:
[LUA-print] 替换字符串后为:    word , word word;word word  5
[LUA-print] 匹配后的字符串为:   1298

修饰符 * 类似于修饰符 + ,但是它还接受对应字符分类出现零次的情况

修饰符 — 和修饰符*类似,也是用于匹配字符分类的零次或多次出现,不过跟修饰符 * 总是能匹配的最长序列不同,修饰符 - 只会匹配最短序列

上一篇下一篇

猜你喜欢

热点阅读