正则表达式
正则表达式支持的合法字符
字符 | 解 释 |
---|
x | 字符x(x可代表任何合法字符) |
\0mnn | 八进制数0mnn所表示的字符 |
\xhh | 十六进制值0xhh所表示的字符 |
\uhhhh | 十六进制值0xhhhh所表示的Unicode字符 |
\t | 制表符 |
\n | 新行(换行)符 |
\r | 回车符 |
\f | 换页符 |
\a | 报警(bell)符 |
\e | Escape符 |
\cx | x对应的控制符。例如,\cM指的是Ctrl-M。x为A ~ Z或a ~ z之一 |
正则表达式中的特殊字符
特殊字符 | 说明 |
---|
$ | 匹配一行的结尾 |
^ | 匹配一行的开头 |
() | 标记子表达式的开始和结束位置 |
[] | 确定中括号表达式的开始和结束位置 |
{} | 标记前面子表达式的出现频度 |
* | 指定前面子表达式可以出现零次或多次 |
+ | 指定前面子表达式可以出现一次或多次 |
? | 指定前面子表达式可以出现零次或一次 |
. | 匹配除换行符\n之外的任何单字符 |
\ | 用于转义下一个字符,或指定八进制、十六进制字符 |
| | 指定两项之间任选一项 |
预定义字符
预定义字符 | 说明 |
---|
. | 可以匹配任何字符 |
\d | 匹配0-9的所有数字 |
\D | 匹配非数字 |
\s | 匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等 |
\S | 匹配所有的非空白字符 |
\w | 匹配所有的单词字符,包括0-9所有数字、26个英文字母和下划线(_) |
\W | 匹配所有的非单词字符 |
注:d指的是digit,s指的是space,w指的是word
方括号表达式
方括号表达式 | 说明 |
---|
表示枚举 | 例如[abc],表示a、b、c其中任意一个字符,[gz],表示任意一个字符 |
表示范围:- | 例入[a-f],表示a ~ f范围内的任意字符; [\u0041-\u0056],表示十六进制字符\u0041到\u0056范围的字符;[a-cx-z],表示a ~ c、x ~ z范围内的任意字符 |
表示求否:^ | [ ^ abc],表示非a、b、c的任意字符;[ ^ a-f],表示不是a ~ f范围的任意字符 |
表示“与”运算:&& | [a~z && [def]]的交集,表示d、e、f |
表示“并”运算 | [a-d[m-p]],表示[a-dm-p] |
边界匹配符
边界匹配符 | 说明 |
---|
^ | 行的开头 |
$ | 行的结尾 |
\b | 单词的边界 |
\B | 非单词的边界 |
\A | 输入的开头 |
\G | 前一个匹配的结尾 |
\Z | 输入的结尾,仅用于最后的结束符 |
\z | 输入的结尾 |
三种模式的数量表示符
贪婪模式 | 勉强模式 | 占用模式 | 说明 |
---|
X? | X?? | X?+ | X表达式出现零次或一次 |
X* | X*? | X*+ | X表达式出现零次或多次 |
X+ | X+? | X++ | X表达式出现一次货多次 |
X{n} | X{n}? | X{n}+ | X表达式出现n次 |
X{n,} | X{n,}? | X{n,}+ | X表达式最少出现n次 |
X{n,m} | X{n,m}? | X{n,m}+ | X表达式最少出现n次,最多出现m次 |