正则
最后更新于:2022-04-02 04:04:19
[TOC]
> [公众号:正则表达式](https://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649749963&idx=1&sn=06ccadf5d062acea106439ccc7a0e9eb&utm_source=tuicool&utm_medium=referral)
## 字符匹配
| 字符 | 说明 |
| --- | --- |
| \\ | 转义符 |
| \\d | \[0-9\]。表示是一位数字。 |
| \\D | \[^0-9\]。表示除数字外的任意字符。 |
| \\w | \[0-9a-zA-Z\_\]。表示数字、大小写字母和下划线。 |
| \\W | \[^0-9a-zA-Z\_\]。非单词字符。 |
| \\s | \[\\t\\v\\n\\r\\f\]。表示空白符,包括空格、水平制表符、
垂直制表符、换行符、回车符、换页符。 |
| \\S | \[^\\t\\v\\n\\r\\f\]。非空白符。 |
| . | \[^\\n\\r\\u2028\\u2029\]。通配符,表示几乎任意字符。
换行符、回车符、行分隔符和段分隔符除外。 |
| \\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
| \\f | 匹配一个换页符 (U+000C)。 |
| \\n | 匹配一个换行符 (U+000A)。 |
| \\r | 匹配一个回车符 (U+000D)。 |
| \\t | 匹配一个水平制表符 (U+0009)。 |
| \\v | 匹配一个垂直制表符 (U+000B)。 |
| \\0 | 匹配 NULL(U+0000)字符, 不要在这后面跟其它小数,因为 \\0是一个 八进制转义序列。 |
| \[\\b\] | 匹配一个退格(U+0008)。(不要和\\b 混淆了。) |
| \[abc\] | any of a, b, or c |
| \[^abc\] | not a, b, or c |
| \[a-g\] | character between a & g |
## 量词和分支
| 字符 | 说明 |
| --- | --- |
| a\* | 0 or more |
| a+ | 1 or more |
| a? | 0 or 1 |
| a{5} | exactly five |
| a{2,} | two or more |
| a{1,3} | between one & three |
| a+? a{2,}? {m,n}? {m,}? ?? +? *? | match as few as possible,惰性匹配,就是尽可能少的匹配 |
## 修饰符
| 字符 | 说明 |
| --- | --- |
| i | 执行对大小写不敏感的匹配。 |
| g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
| m | 执行多行匹配。 |
| u | 开启"Unicode 模式",用来正确处理大于\\uFFFF 的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。 |
| s | 允许 . 匹配换行符。 |
| y | y 修饰符的作用与 g 修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g 修饰符只要剩余位置中存在匹配就可,而 y 修饰符确保匹配必须从剩余的第一个位置开始,这也就是"粘连"的涵义 |
';