| \t | 制表符 |
| \r | 回车符 |
| \n | 换行符 |
| \f | 换页符 |
| \b | 退格 |
| \e | ESC |
| \v | 垂直制表符 |
| \cC | 控制字符(如ctrl+c) |
| \040 | 八进制(0开头) |
| \x20 | 十六进制(x开头) |
| \uA0FF | Unicode字符 |
| \G | 当前搜索的开头 |
| \A | 必须出现在字符串开头 |
| \Z | 必须实现在字符串结尾或\n
之前 |
| \z | 必须实现在字符串结尾 |
| 注1 | 在[]中,正则表达式中有含义的字符都要再前方加\
转义。如\
写作\\
|
| 注2 | \b在[]中才表示退格,在外面表示单词边界 |
| 注3 | 正则表达式不允许双引号中出现单引号 |
注意换行的回车不是一个东西,虽然我们看上去是一样的。这个和编码发展历史有关,区别见下表:
| Unicode序列 | 正则 | 名称 | 简写 | 描述 |
| — | — | — | — | — |
| U+000DU+000A | (\r\n) | 回车换行 | CRLF | Windows,DOS中的文本文件 |
| U+000D | (\r) | 回车 | CR | 旧版的MacOS中的文本文件 |
| U+000A | (\n) | 换行 | LF | Unix,Linux,BSD和OSx中的文本文件 |
限定符
贪婪的
| 代码/语法 | 说明 |
| — | — |
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多次 |
| {n,m} | 重复n到m次 |
非贪婪的
| 代码/语法 | 说明 |
| — | — |
| *? | 重复任意次,但尽可能少重复 |
| +? | 重复1次或更多次,但尽可能少重复 |
| ?? | 重复0次或1次,但尽可能少重复 |
| {n,m}? | 重复n到m次,但尽可能少重复 |
| {n,}? | 重复n次以上,但尽可能少重复 |
分组
我们