常见匹配符号
正则表达式 |
描述 |
. |
匹配所有单个字符,除了换行符(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 个数字 |
| *?
| 如果 ?
是限定符 *
或 +
或 ?
或 {}
后面的第一个字符,那么表示非贪婪模式(尽可能少的匹配字符),而不是默认的贪婪模式 | |