1. 正则表达式(Regexps)由表达式(expressions)、量词(quantifiers)和断言(assertions)组成。
2. 如:[0-9]{1, 2},其中[0-9]就是表达式,表示0-9中任意一个数字,{1, 2}就是量词部分,表示表达式出现1~2次;
3. 如:^[0-9]{1, 2}$,其中^就是断言,表示必须从字符串开始进行匹配,$也是断言,表示必须匹配到字符串结尾;
4. 对于常用的表达式,可用一些符号表示,例如 \d 可替代[0-9];而{1, 1}可由表达式本身代替,{0, 1}表示可选的,可由 ?代替,因此正则表达式:^[0-9]{1, 2}$,也可以表达为:^\d\d?$
5. 正则表达式中的表达式可以是各种字符和字符组,而一些常用的字符集可以使用一些缩写来表示,在使用时候可再具体查找;
6. 正则表达式中的量词的使用情况如下表所示,其中E代表一个表达式,一个表达式可以是一个字符,或者一个字符集的缩写,或者在方括号中的一个字符集,或者在括号中的一个表达式。
量词 | 含义 |
E? | 匹配0次或者1次,表明E是可选的,E?等价于E{0, 1} |
E+ | 匹配1次或者多次,E+等价于E{1,},例如,0+匹配0,00,000等 |
E* | 匹配0次或者多次,等价于E{0,} |
E{n} | 匹配n次,等价于E{n, n},例如x{5}等价于x{5,5},也等价于xxxxx |
E{n,} | 匹配至少n次 |
E{,m} | 匹配至多m次,等价于E{0, m} |
E{n, m} | 匹配至少n次,至多m次 |
7. 正则表达式中的断言
断言 | 含义 |
^ | 标志着字符串的开始,如果要匹配"^"就要使用"\\^" |
$ | 标志着字符串的结尾,如果要匹配"$"就要使用"\\$" |
\b | 一个单词的边界 |
\B | 一个非单词的边界,当"\b"为false时,它为true |
(?=E) | 表达式后面紧跟着E才匹配,例如,const(?=\s+char)匹配const且其后必须有char |
(?!E) | 表达式后面没有紧跟着E才匹配,例如,const(?!\s+char)匹配const但其后不能有char |