📅  最后修改于: 2023-12-03 14:42:29.421000             🧑  作者: Mango
正则表达式是一种强大的模式匹配工具,可以用于在文本中查找、替换和提取特定的字符串模式。量词是正则表达式中的特殊字符,用于指定在模式中重复出现的次数。
以下是常用的量词及其用法:
*
:匹配前一个表达式 0 次或多次。+
:匹配前一个表达式 1 次或多次。?
:匹配前一个表达式 0 次或 1 次。{n}
:匹配前一个表达式恰好 n 次。{n,}
:匹配前一个表达式至少 n 次。{n,m}
:匹配前一个表达式至少 n 次且不超过 m 次。以下是一些示例代码,演示了如何使用量词:
const text = 'Helloooooo World';
// 使用 * 匹配重复出现的 o
const result1 = text.match(/o*/);
console.log(result1); // Output: ["oooooo"]
// 使用 + 匹配重复出现的 o
const result2 = text.match(/o+/);
console.log(result2); // Output: ["oooooo"]
// 使用 ? 匹配重复出现的 o
const result3 = text.match(/o?/);
console.log(result3); // Output: ["", "o", "", "", "", "", "", "o", "", "", ""]
// 使用 {n} 匹配恰好 3 个 o
const result4 = text.match(/o{3}/);
console.log(result4); // Output: ["ooo"]
// 使用 {n,} 匹配至少 3 个 o
const result5 = text.match(/o{3,}/);
console.log(result5); // Output: ["oooooo"]
// 使用 {n,m} 匹配至少 3 个且不超过 6 个 o
const result6 = text.match(/o{3,6}/);
console.log(result6); // Output: ["oooooo"]
请注意,正则表达式中的量词默认情况下是贪婪的,即它们会尽可能多地匹配字符。可以使用 ?
将贪婪量词变为非贪婪量词,即匹配尽可能少的字符。
const text = 'Helloooooo World';
// 使用 *? 将 * 量词变为非贪婪
const result7 = text.match(/o*?/);
console.log(result7); // Output: [""]
以上只是一小部分量词的例子,正则表达式还有很多其他的特性和量词可以使用。熟悉这些量词可以帮助你更好地操作和处理文本数据。