合法字符
| 字符 | 解释 |
|---|---|
| x | 字符x可代表任何合法的字符 |
| \0mnn | 八进制数0mnn所表示的字符 |
| \xhh | 十六进制值0xhh所表示的字符 |
| \uhhhh | 十六进制值0xhhhh所表示的Unicode字符 |
| \t | 制表符("\u0009") |
| \n | 新行(换行)符(“\u000A”) |
| \r | 回车符("\u000D") |
| \f | 换页符("\u000C") |
| \a | 报警(bell)符("\u0007") |
| \e | Escape符("\u001B") |
| \cx | x对应的的控制符。例如,\cM 匹配Ctrl-M。x值必须为A |
特殊字符
| 特殊字符 | 说明 |
|---|---|
| $ | 匹配一行的结尾。要匹配 |
| 匹配一行的开头。要匹配^字符本身,请使用\^ | |
| () | 标记子表达式的开始和结束位置。要匹配这些字符,请使用\(和\) |
| [] | 用于确定中括号表达式的开始和结束位置。要匹配这些字符,请使用\[和\] |
| {} | 用于标记前面子表达式的出现频度。要匹配这些字符,请使用\{和\} |
| * | 指定前面子表达式可以出现零次或多次。要匹配 * 字符本身,请使用 \* |
| + | 指定前面子表达式可以出现一次或多次。要匹配 + 字符本身,请使用 \+ |
| ? | 指定前面子表达式可以出现零次或一次。要匹配 ? 字符本身, 请使用\? |
| . | 匹配除换行符 \n 之外的任何单字符。要匹配 . 字符本身,请使用 \. |
| \ | 用于转义下一个字符,或指定八进制、十六进制字符。如果需要匹配 \ 字符,请用 \\ |
| | | 指定两项之间任选一项。如果要匹配 | 字符本身,请使用 | |
预定义字符
| 预定义字符 | 说明 |
|---|---|
| . | 可以匹配任何字符 |
| \d | 匹配0~9的所有数字 |
| \D | 匹配非数字 |
| \s | 匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等 |
| \S | 匹配所有的非空白字符 |
| \w | 匹配所有的单词字符,包括0~9所有数字、26个英文字母和下划线(_) |
| \W | 匹配所有的非单词字符 |
方括号表达式
| 方括号表达式 | 说明 |
|---|---|
| 表示枚举 | 例如[abc],表示a、b、c其中任意一个字符;[gz],表示g、z其中任意一个字符 |
| 表示范围: - | 例如[a-f],表示a 表示十六进制字符\u0041到\u0056范围的字符。范围可以和枚举结合使用, 如[a-cx-z],表示a |
| 表示求否:^ | 例如[^abc],表示非a、b、c的任意字符;[^a-f],表示不是a~f范围内的任意字符 |
| 表示“与”运算:&& | 例如[a-z&&[def]],求a [a-z&&[^bc]],a [a-z&&[^m-p]],a |
| 表示“并”运算 | 并运算与前面的枚举类似。例如[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次 |