美文网首页
贪婪模式和非贪婪模式

贪婪模式和非贪婪模式

作者: Zulu_c02a | 来源:发表于2020-02-11 23:27 被阅读0次

    贪婪模式
    先看那个例子

    var str = 'a ''witch" and her "broom" is one';
    str.match(/".*"/g)
    //[""witch" and her "broom""]
    

    得到的是[""witch" and her "brom""],而并不是我们之前想到的"witch"和"broom",因为js的引擎在运行的时候,首先匹配双引号,匹配到开头的双引号,然后匹配
    ".*"(也就是除了回车和换行之外的所有字符),因为js引擎的机制会一直从a运行到e,这个时候才会匹配到最后的双引号,这个时候js引擎开始从最后往前匹配,匹配到的第一个双引号就作为数组元素的最后一个双引号,所以匹配到的是[""witch" and her "brom""]。这就是贪婪模式。
    非贪婪模式
    非贪婪模式与贪婪模式相反,通过在代表数量的标识符后面放置?来开启非贪婪模式,?的作用就是尽量的减少匹配。
    看个例子

    var str = 'a ''witch" and her "broom" is one';
    str.match(/".*"/g)
    //[""witch"", ""brom""]
    得到的是"witch"和"brom"

    相关文章

      网友评论

          本文标题:贪婪模式和非贪婪模式

          本文链接:https://www.haomeiwen.com/subject/jowffhtx.html