g=全局匹配 i=忽略大小写 m=多行 s=点匹配换行| 语法 | 含义 | 示例 |
|---|---|---|
. | 匹配任意单个字符(除换行) | a.c 匹配 "abc"、"a1c" |
\d | 匹配数字 [0-9] | \d+ 匹配 "123" |
\D | 匹配非数字 | \D+ 匹配 "abc" |
\w | 匹配字母、数字、下划线 | \w+ 匹配 "hello_1" |
\W | 匹配非字母数字 | \W+ 匹配 "!@#" |
\s | 匹配空白字符(空格、Tab等) | \s+ 匹配空格 |
\S | 匹配非空白字符 | |
[abc] | 字符集,匹配其中一个 | [aeiou] 匹配元音 |
[^abc] | 排除字符集 | [^0-9] 匹配非数字 |
[a-z] | 字符范围 | [a-zA-Z] 匹配字母 |
| 语法 | 含义 |
|---|---|
^ | 匹配字符串开头(多行模式下匹配行首) |
$ | 匹配字符串结尾(多行模式下匹配行尾) |
\b | 单词边界 |
\B | 非单词边界 |
| 语法 | 含义 |
|---|---|
* | 前面元素出现 0 次或多次(贪婪) |
+ | 前面元素出现 1 次或多次(贪婪) |
? | 前面元素出现 0 次或 1 次 |
{n} | 恰好出现 n 次 |
{n,} | 至少出现 n 次 |
{n,m} | 出现 n 到 m 次 |
*? / +? | 非贪婪(懒惰)模式 |
| 语法 | 含义 |
|---|---|
(abc) | 捕获组,匹配并记录 |
(?:abc) | 非捕获组,匹配但不记录 |
(?<name>abc) | 命名捕获组 |
a|b | 匹配 a 或 b(或运算) |
\1 | 反向引用第 1 个捕获组 |
| 语法 | 含义 |
|---|---|
(?=abc) | 正向前瞻:后面跟着 abc |
(?!abc) | 负向前瞻:后面不跟 abc |
(?<=abc) | 正向后顾:前面是 abc |
(?<!abc) | 负向后顾:前面不是 abc |
? 变为"非贪婪(懒惰)"模式,如 .*?,尽量少匹配。对于 HTML 内容的匹配,正则通常不是最佳方案,建议使用专用解析器。