«

如何在 JavaScript 中使用非贪婪模式进行匹配?

瑞瑞瑞 发布于 阅读:279 技术分享


在 JavaScript 中,可以在正则表达式的量词后面添加?来切换到非贪婪模式。

以下是示例:

const str = "aaaaab";
const greedyPattern = /a+b/;
const nonGreedyPattern = /a+?b/;

console.log(str.match(greedyPattern)); // ["aaaaab"]
console.log(str.match(nonGreedyPattern)); // ["aaab"]

在这个例子中,贪婪模式的正则表达式/a+b/会尽可能多地匹配a,直到遇到最后一个b,所以匹配结果是"aaaaab"。而非贪婪模式的正则表达式/a+?b/会尽可能少地匹配a,一旦遇到b就停止匹配,所以匹配结果是"aaab"