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

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

JavaScript | 正则表达式 - 量词

正则表达式是一种强大的模式匹配工具,可以用于在文本中查找、替换和提取特定的字符串模式。量词是正则表达式中的特殊字符,用于指定在模式中重复出现的次数。

常用的量词

以下是常用的量词及其用法:

  • *:匹配前一个表达式 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: [""]

以上只是一小部分量词的例子,正则表达式还有很多其他的特性和量词可以使用。熟悉这些量词可以帮助你更好地操作和处理文本数据。

参考资料