正则表达式 Regular Expressions
匹配
符号 | 解释 |
---|---|
\小写字母 | 类型 |
\大写字母 | 除了、非 |
匹配类型
符号 | 解释 | |
---|---|---|
\d | 数字 | digit |
\D | 非数字 | |
\w | 数字、字母 | word |
\W | 非数字、字母 | |
\s | 空格 | space |
\S | 非空格 |
符号 | 解释 | |
---|---|---|
. | 任意字符 | |
i | 忽略大小写 | ignore |
g | 全局匹配 | global |
bash
/c.t/ # 匹配 cat、cot
/\d\d/ # 匹配 23、99
/\W+/ # 匹配 !@#、$%^
匹配数量
符号 | 解释 |
---|---|
* | 0 次或多次 |
+ | 1 次或多次 |
? | 0 次或 1 次 |
{n} | n 次 |
{n,m} | 至少 n 次、至多 m 次 |
{n,} | 至少 n 次 |
bash
/ab*/ # 匹配 a、ab、abb
/ab+/ # 匹配 ab、abb
/\d{3}/ # 匹配 123
匹配位置
符号 | 解释 |
---|---|
^ | 以什么开头 |
$ | 以什么结尾 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
bash
/^abc/ # 匹配 abc123 ✅,1abc ❌
/\ber\b/ # 匹配 water ❌,er ✅
分组与集合
符号 | 解释 |
---|---|
() | 将多个字符或表达式作为一个整体 |
[] | 匹配该集合中的任意一个字符 |
[^] | 排除字符集 |
bash
/(abc)+/ # 匹配 abc、abcabc
/[abc]/ # 匹配 a、b、c
/[^abc]/ # 匹配 d、e(非 a、b、c)
/red|blue/ # 匹配 red、blue
逻辑运算
bash
| 符号 | 解释 | 示例 |
| --- | ---------- | ---------------- |
| 或 | `|` | `/hello|world/` |
| 与 | 拼接多个条件 | `/\d{3}\s\w/` |
| 非 | 零宽度断言 | `/(?<!\d)\w/` |
零宽度断言
符号 | 名称 | 解释 |
---|---|---|
(?=...) | 正向先行断言 | 匹配内容的后面挨着什么 |
(?!...) | 负向先行断言 | 匹配内容的后面不挨着什么 |
(?<=...) | 正向后行断言 | 匹配内容的前面挨着什么 |
(?<!...) | 负向后行断言 | 匹配内容的前面不挨着什么 |
bash
/hello|world/ # 匹配 hello 或 world
/\d{3}\s\w/ # 匹配 3 个数字 + 一个空格 + 一个单词
/(?<!\d)\w/ # 匹配单词前面不是数字
/(\d(?=[a-z]))/ # 数字后面挨着字母
/\d(?![a-z])/ # 数字后面不挨着字母
/(?<=[a-z])\d/ # 数字前面挨着字母
/(?<![a-z])\d/ # 数字前面不挨着字母