常见匹配符号

正则表达式 描述
. 匹配所有单个字符,除了换行符(Linux 中换行是 \n,Windows 中换行是 \r\n
^regex 正则必须匹配字符串开头
regex$ 正则必须匹配字符串结尾
[abc] 复选集定义,匹配字母 a 或 b 或 c
[abc][vz] 复选集定义,匹配字母 a 或 b 或 c,后面跟着 v 或 z
[^abc] 当插入符 ^ 在中括号中以第一个字符开始显示,则表示否定模式。此模式匹配所有字符,除了 a 或 b 或 c
[a-d1-7] 范围匹配,匹配字母 a 到 d 和数字从 1 到 7 之间,但不匹配 d1
XZ 匹配 X 后直接跟着 Z
X|Z 匹配 X 或 Z

元字符

正则表达式 描述
\d 匹配一个数字,是 [0-9] 的简写
\D 匹配一个非数字,是 [^0-9] 的简写
\s 匹配一个空格,是 [ \t\n\x0b\r\f] 的简写
\S 匹配一个非空格
\w 匹配一个单词字符(大小写字母、数字、下划线),是 [a-zA-Z_0-9] 的简写
\W 匹配一个非单词字符(除了大小写字母、数字、下划线之外的字符),等同于 [^\w]

限定符

| 正则表达式 | 描述 | 举例 |
| * | 匹配 >=0 个,是 {0,} 的简写 | X* 表示匹配零个或多个字母 X,.* 表示匹配任何字符串 |
| :—: | :—: | :—: |
| + | 匹配 >=1 个,是 {1,} 的简写 | X+ 表示匹配一个或多个字母 X |
| ? | 匹配 1 个或 0 个,是 {0,1} 的简写 | X? 表示匹配 0 个或 1 个字母 X |
| {X} | 只匹配 X 个字符 | \d{3} 表示匹配 3 个数字,.{10} 表示匹配任何长度是 10 的字符串 |
| {X,Y} | 匹配 >=X 且 <=Y 个 | \d{1,4} 表示匹配至少 1 个最多 4 个数字 |
| *? | 如果 ? 是限定符 *+?{} 后面的第一个字符,那么表示非贪婪模式(尽可能少的匹配字符),而不是默认的贪婪模式 | |