📜  JavaScript |正则表达式?!量词(1)

📅  最后修改于: 2023-12-03 14:42:29.434000             🧑  作者: Mango

JavaScript | 正则表达式?!量词

正则表达式是一种用来匹配和处理字符串的强大工具。在 JavaScript 中,我们可以使用正则表达式来快速搜索、替换、分割、提取字符串中的数据等。正则表达式由特殊字符和普通字符组成,量词就是其中的一种特殊字符。

什么是量词?

量词表示其前面的字符或子表达式可以出现的次数。例如,正则表达式 a{3} 表示匹配 3 个连续的小写字母 a。在 JavaScript 中,我们可以使用以下几种量词:

  • {n},表示其前面的字符或子表达式恰好出现 n 次。
  • {n,},表示其前面的字符或子表达式至少出现 n 次。
  • {n,m},表示其前面的字符或子表达式出现次数在 n 和 m 之间(包括 n 和 m)。

量词应该紧跟在需要重复的内容后面,否则无法生效。

量词的贪婪性

默认情况下,量词是贪婪的,也就是说,它们会尽可能匹配更多的字符。例如,正则表达式 a+ 会匹配任意数量的连续小写字母 a,包括整个字符串。如果需要非贪婪匹配,我们可以在量词后面加上 ?,例如 a+?

代码示例
const str = 'aaaaaab';
const reg1 = /a{2}/g; // 匹配两个连续的 a
const reg2 = /a{2,}/g; // 至少匹配两个连续的 a
const reg3 = /a{2,5}/g; // 匹配两到五个连续的 a

console.log(str.match(reg1)); // ['aa']
console.log(str.match(reg2)); // ['aaaaaa']
console.log(str.match(reg3)); // ['aaaaa']

以上代码示例演示了如何使用 {} 量词匹配字符串中的内容,并返回匹配结果。注意,在使用全局匹配模式时,match() 方法会返回所有匹配结果的数组,否则只返回第一个匹配结果。