如何在 JavaScript 中使用非贪婪模式进行匹配?
在 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"
。