校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 前端项目开发 > 正则表达
题目

什么是贪婪模式?

解答
var str = 'you "are" so "beautiful"'
str.match(/".*"/g)//[""are" so "beautiful""]

贪婪模式

第一个查找字符是",正则在第五个位置找到匹配它,第二个字符是.,.意思是任意字符,*.说明任意字符可以重复一次甚至多次,所以就一直匹配到最后。再后面突然发现,咦!还有一个正则"要匹配,(为什么说它贪婪,自顾自的一直匹配下去也不先看看其他的)因因此正则引擎倒过来回溯,换句话说就是一个字符一个字符倒过来缩减匹配,l不是,u不是,f不是就一直找啊找

终于找到了它的最爱,所以最后输出为[""are" so "beautiful""].非贪婪模式相反,输出结果为["are" "beautiful"]
var str = "you "are" so "beautiful""

参考下图,一目了然


C 0条回复 评论

帖子还没人回复快来抢沙发