| 普通字符 |
除去%.^$*+-?的字符,匹配字符本身 |
Kana |
Kana |
| . |
匹配任意字符 |
Ka.a |
Kana,Ka2a |
| ^ |
匹配字符串开头 |
^(%a)%w* |
abc123 |
| $ |
匹配字符串结尾 |
%w*(%d)$ |
abc123 |
| * |
表示前一个字符出现0次或多次,贪婪 |
[0-9]* |
2009,2,23 |
| + |
表示前一个字符出现1次或1次以上 |
n+[0-9]+ |
n2009,nn99 |
| - |
表示前一个字符出现0次或多次,非贪婪 |
b[a-z]-c |
bacaac 中只会匹配出:bac 而不是 bacaac |
| ? |
表示前一个字符出现0次或1次 |
n?[0-9]+ |
2009 |
| () |
表达式中用小括号包围的子字符串为一个分组,分组从左到右(以左括号的位置),组序号从1开始递增,使用场景:替换掉匹配字符串中的一部分 |
ab(%d+) |
ab233 |
| % |
转义字符,%和一些特定的字母组合构成了lua的预定义字符集。%和数字1~9组合表示之前捕获的分组 |
K%wna |
Kana,K9na |
|
%%表示匹配% |
%%na%% |
%na% |
|
%1表示再次匹配第一个分组,也就是说 (a)%1等价于(a)(a) |
(a)%1(b)x%2 |
aabxb |
|
%s ,空白字符(比如空格,tab啊) |
an[%s]?9 |
an 9 |
|
%p ,标点符号 |
an[%p]9 |
an.9 |
|
%c ,控制字符 例如\n |
|
|
|
%w ,字母数字[a-zA-Z0-9] |
[%w]+ |
Kana9 |
|
%a ,字母[a-zA-Z] |
[%a]* |
Kana |
|
%l ,小写字母[a-z] |
- |
|
|
%u ,大写字母[A-Z] |
- |
|
|
%d ,数字[0-9] |
- |
|
|
%x ,16进制数[0-9a-fA-F] |
- |
|
|
%z , ascii码是0的字符 |
- |
|
| [] |
字符集(字符类)。匹配一个包含于集合内的字符。[...]中的特殊字符将还原其原意,但有下面几种特殊情况 |
[a%%]na |
%na,ana |
|
%],%-,%作为整体表示字符']','-','' |
[%a]na |
wna,bna,Bna |
|
预定义字符集作为一个整体表示对应字符集 |
[%%a]na |
%na,ana |
|
[-] ,-表示ascii码在它前一个字符到它后一个字符之间的所有字符,如:[a-zA-Z0-9] |
[a-z]na |
ana,bna…..zna |
|
[^] ,不在...中的字符集合。 如:[^a],表示a以外的任意字符 |
[^0-9]na |
Kna |