首页文档便民工具JavaScript正则表达式SQL教程
首页/文档/

一. 概述

1. 贪婪模式

尽可能多的匹配字符。

2. 惰性模式

又称非贪婪模式,尽可能少的匹配字符。

量词默认是贪婪的,尽可能多的匹配字符。

如果让量词变成惰性(不贪婪)的,在量词后面添加上 ?。

二. 示例

1. 贪婪匹配

const regex = /[a-zA-Z]{2,4}/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
// ["ab", "abc", "abcd", "abcd"]

2. 惰性匹配 - {m, n}?

const regex = /[a-zA-Z]{2,4}?/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
// ["ab", "ab", "ab", "cd", "ab", "cd"]

3. 惰性匹配 - {m}?

const regex = /[a-zA-Z]{2}?/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
// ["ab", "ab", "ab", "cd", "ab", "cd"]

4. 惰性匹配 - *?

const regex = /[a-zA-Z]*?/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
// ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] 长度 18

匹配0次,"ab abc abcd abcde"中能匹配的位置有18个。

5. 惰性匹配 - ??

const regex = /[a-zA-Z]??/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
// ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] 长度 18

和4例子一样。

6. 惰性匹配 - +?

const regex = /[a-zA-Z]+?/g;
const string = "ab abc abcd abcde";
console.log(string.match(regex));
//  ["a", "b", "a", "b", "c", "a", "b", "c", "d", "a", "b", "c", "d", "e"] 长度 14
目录
一. 概述
1. 贪婪模式2. 惰性模式
二. 示例
1. 贪婪匹配2. 惰性匹配 - {m, n}?3. 惰性匹配 - {m}?4. 惰性匹配 - *?5. 惰性匹配 - ??6. 惰性匹配 - +?