正则表达式参考
字符类
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
. | 任意字符 | 匹配除换行外的任意字符 | .at → hat,cat,mat |
\d | 数字 | 匹配数字 | \d{3} → 123,456 |
\D | 非数字 | 匹配非数字 | \D → a,b,! |
\w | 单词字符 | 字母数字下划线 | \w+ → hello_world |
\W | 非单词字符 | 非单词 | \W → @,#,! |
\s | 空白 | 空格制表换行 | \s → space,tab |
\S | 非空白 | 非空白字符 | \S → a,1,X |
[abc] | 字符集 | 匹配括号内字符 | [aeiou] → a,e,i,o,u |
[^abc] | 排除集 | 不匹配括号内 | [^0-9] → a,b,! |
[a-z] | 范围 | 匹配范围内字符 | [A-Z] → A,B,C |
\n\t\r | 转义 | 控制字符 | \n → newline |
量词
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
* | 零次或多次 | 0+次,贪婪 | a* → "",a,aa,aaa |
+ | 一次或多次 | 1+次 | a+ → a,aa,aaa |
? | 可选 | 0或1次 | colou?r → color,colour |
{n} | 恰好n次 | 恰好n次 | \d{3} → 123,456 |
{n,} | n次以上 | n+次 | \d{2,} → 12,12345 |
{n,m} | n到m次 | n到m次 | \d{2,4} → 12,123,1234 |
*? | 惰性星号 | 0+次,尽量少 | a.*?b → ab,aXb |
+? | 惰性加号 | 1+次,尽量少 | a.+?b → aXb,aXYb |
锚点
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
^ | 开头 | 字符串/行开头 | ^Hello → Hello world |
$ | 结尾 | 字符串/行结尾 | end$ → the end |
\b | 单词边界 | 单词与非单词间 | \bcat\b → cat not catch |
\B | 非边界 | 非单词边界 | \Bcat → location |
分组与环视
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
(...) | 捕获组 | 捕获供引用 | (ab)+ → ababab |
(?:...) | 非捕获组 | 分组不捕获 | (?:ab)+ → matches,no capture |
(?=...) | 正向预查 | 断言后面匹配 | foo(?=bar) → foobar |
(?!...) | 负向预查 | 断言后面不匹配 | foo(?!bar) → food not foobar |
| | 或 | 任选其一 | cat|dog → cat or dog |
\1 | 反向引用 | 匹配组1内容 | (\w)\1 → aa,bb,cc |
标志
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
g | 全局 | 全部匹配 | /cat/g → all matches |
i | 忽略大小写 | 不区分大小写 | /cat/i → Cat,CAT,cat |
m | 多行 | 每行匹配 | ^ and $ match each line |
u | Unicode | Unicode | Unicode support |
s | Dotall | 点匹配换行 | . matches newline too |
常用模式
| 语法 | 名称 | 说明 | 示例 |
|---|---|---|---|
\d{3}-\d{4} | 电话 | 电话号码 | 010-1234 |
[\w.-]+@[\w-]+\.[a-z]{2,} | 邮箱 | 电子邮件 | [email protected] |
https?://[\w.-]+ | 网址 | 网页URL | https://example.com |
\d{4}-\d{2}-\d{2} | 日期 | 年-月-日格式 | 2024-01-15 |
[A-Z][a-z]+ | 大写开头 | 首字母大写 | Hello,World |
#[0-9a-fA-F]{6} | 十六进制颜色 | 6位十六进制颜色 | #FF6600,#ff6600 |