常用函数
string.find(s, pattern[, init[, plain]])
- 参数:
- s: 将要匹配字符串
- pattern: 匹配字符
- init: 可选参数, 从那个引索开始匹配,默认从头(引索为 1)开始匹配
- plain: 可选参数, 为 true 时,普通字符串匹配,默认正则匹配
- 返回: 匹配成功的开始,结束引索
|
|
string.match(s, pattern[, init])
- 参数:
- s: 将要匹配字符串
- pattern: 匹配字符
- init: 可选参数, 从那个引索开始匹配,默认从头(引索为 1)开始匹配
- 返回: 匹配失败,返回 nil, 当 pattern 没有分组,返回第一个匹配的子串,返回第一个匹配到子串的分组,多个分组就返回多个。可选参数 init 表示匹配字符串的起始索引,缺省为 1,可以为负索引。
|
|
string.gmatch(s, pattern)
- 参数:
- s: 将要匹配字符串
- pattern: 匹配字符
- 返回: 返回一个迭代器。每当迭代器调用时,返回下一个匹配到的子串,如果 pattern 中有分组,返回的是子串对应的分组。gmatch 也可以用 find 和循环来实现。
|
|
string.gsuib(s, pattern, repl[, n])
- 参数:
- s: 将要匹配字符串
- pattern: 匹配字符
- repl: 将匹配到的 pattern 替换为 repl, repl 可以是一个函数,或一个 string
- n: 替换次数,默认全部替换
- 返回替换后的字符串
|
|
lua 常用正则表达式表
元字符 | 描述 | 表达式 | 完整匹配字符串 |
---|---|---|---|
字符 | |||
普通字符串匹配 | 除去%.[]^$*+-?的字符 | kana | kana |
. | 匹配任意字符 | k.a | kva |
% | 转义字符 | %% | % |
[…] | 字符集合 | [a%]a | aa |
[..-..] | - 表示 ascii 码前后所有字符 | [a-z]a | na |
[^…] | ^ 不在集合中的字符 | [^az] | c |
重复 | |||
* | 前一个字符的 0 次或多次 | a* | aaaa |
+ | 前一个字符的 1 次或 1 次以上 | [a-z]+ | axc |
? | 字符出现 0 次或 1 次 | [a-z]?1 | a1 |
预订字符集 | |||
%s | 空白字符[\r\n\t\v\f] | an[%s]?9 | an 9 |
%p | 标点符号 | an[%p]?9 | an.9 |
%c | 控制字符 | ||
%w | 类似[a-zA-Z0-9] | %w+ | a1Z |
%a | 字母[a-zA-Z] | %a+ | aZ |
%l | 小写字符[a-z] | %l+ | ac |
%u | 大写字符[A-Z] | %u+ | ACB |
%d | 数字[0-9] | %d+ | 123 |
%x | 16 进制数字[0-9a-fA-F] | %x+ | fe12 |
%z | ascii 码为 0 的字符 | ||
分组 | |||
(…) | 分组 | a(cd) | ad |
边界匹配 | |||
^ | 字符串开头 | ||
$ | 字符串结尾 | ||
%b | 平衡匹配(匹配 xy 对) | %b() | (3+4(x*2)) |