Lua匹配模式
什么是匹配模式
匹配模式也是一串字符串内容,能通过zm.RegExMatch 正则匹配、zm.RegExMatchEx 正则子匹配、zm.RegExReplace 正则替换等函数命令实现按规则描述提取指定数据内容。
与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式(也写作RegExp)来进行匹配,而是进行了一些精简优化来实现强大的功能。
语法
字符类
字符类用于表示一个字符集合。
.
(一个点) : 可表示任何字符。%a
: 表示任何字母。%c
: 表示任何控制字符。%d
: 表示任何数字。%g
: 表示任何除空白符外的可打印字符。%l
: 表示所有小写字母。%p
: 表示所有标点符号。%s
: 表示所有空白字符。%u
: 表示所有大写字母。%w
: 表示所有字母及数字。%x
: 表示所有 16 进制数字符号。%z
: 表示 \0 的字符。%%
: 表示字符 %。 这是对魔法字符转义的标准方法。 所有非字母或数字的字符 (包括所有标点,也包括非魔法字符) 都可以用前置一个%
放在模式串中表示自身。[
set]
: 表示 set 中所有字符的联合。 可以以-
连接,升序书写范围两端的字符来表示一个范围的字符集。 其它出现在 set 中的字符则代表它们自己。 例如,[%w\_]
(或[\_%w]
) 表示所有的字母数字加下划线),[0-7]
表示 8 进制数字,[0-7%l%-]
表示 8 进制数字加小写字母与-
字符。[^
set]
: 表示 set 的补集,也就是不包含 set , 其中 set 如上面的解释。
所有单个字母表示的类别(%a
,%c
,等), 若将其字母改为大写,均表示对应的补集。 例如,%S
表示所有非空格的字符。