一、基础元字符
| . | 任意单个字符(除换行) | a.b → acb、a1b |
| ^ | 行首 | ^abc → 以 abc 开头 |
| $ | 行尾 | abc$ → 以 abc 结尾 |
| \\d | 数字 | \\d{2} → 12、99 |
| \\w | 字母/数字/下划线 | \\w+ → abc123_ |
| \\s | 空白 | a\\sb → a b |
| \\D \\W \\S | 对应取反 | |
| [abc] | 匹配 a/b/c | |
| [^a] | 不匹配 a |
二、量词(次数控制)
| ? | 0 或 1 次 |
| + | ≥1 次 |
| * | 0 或多次 |
| {n} | 正好 n 次 |
| {n,} | ≥n 次 |
| {n,m} | n~m 次 |
贪婪 / 非贪婪
- 默认贪婪(尽量多匹配)
- 加 ? → 非贪婪(尽量少匹配) /<.*?>/g
三、分组与引用
- () 分组捕获
- (?:) 非捕获分组
- | 或
- \\1 反向引用
示例: (\\d)\\1 → 匹配 11、22、99
四、零宽断言(定位)
- (?=a) 后面是 a
- (?!a) 后面不是 a
- (?<=a) 前面是 a
- (?<!a) 前面不是 a
示例: (?<=price:)\\d+ → 提取 price: 后的数字
五、修饰符
- i 忽略大小写
- g 全局匹配
- m 多行模式
🚩 重点:正则实际使用方法(以js为例子)
1. test() —— 判断是否匹配(返回 true/false)
用于表单验证、格式检查
let reg = /^\\d+$/
reg.test("123") // true
reg.test("abc") // false
2. match() —— 提取匹配结果(返回数组)
let str = "a1b2c3"
str.match(/\\d/g) // ["1","2","3"]
3. replace() —— 替换匹配内容
let str = "hello 123"
str.replace(/\\d/g, "#") // "hello ###"
4. search() —— 找位置(返回索引)
"abc123".search(/\\d/) // 3
5. split() —— 按正则分割字符串
"a1b2c".split(/\\d/) // ["a","b","c"]
6. exec() —— 高级匹配(循环抓取所有)
let reg = /\\d/g
reg.exec("a1b2") // ["1"]
reg.exec("a1b2") // ["2"]
📌 快速用法总结
- 验证 → test
- 提取 → match
- 替换 → replace
- 找位置 → search
- 分割 → split
- 循环抓取 → exec





