欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js正則表達式惰性匹配和貪婪匹配用法分析

 更新時間:2016年12月26日 08:57:57   作者:xlei1123  
這篇文章主要介紹了js正則表達式惰性匹配和貪婪匹配用法,結合實例形式詳細分析了正則表達式的基本概念以及惰性匹配和貪婪匹配的使用方法,需要的朋友可以參考下

本文實例講述了js正則表達式惰性匹配和貪婪匹配用法。分享給大家供大家參考,具體如下:

在講貪婪模式和惰性模式之前,先回顧一下JS正則基礎:

寫法基礎:

①不需要雙引號,直接用//包含 => /wehfwue123123/.test();

②反斜杠\表示轉義 =>/\.jpg$/

③用法基礎:.test(str);

語法:

①錨點類

/^a/=>以"a"開頭

/\.jpg$/=>以".jpg"結尾

②字符類

[abc]:a或b或c

[0-9]:一個數(shù)字

[a-z]:一個字母

.    :任意字符

③元字符

^:在[]里面用表示非,在[]外面用表示開頭

\d:[0-9]

\s:空白符

\w:[A-Za-z0-9_]

\D:[^\d]-非數(shù)字

\S:非空白符

④量詞

{m,n}:m到n次

元字符表示:

*:{0,}

?:{0,1}

+:{1,}

難點:貪婪模式/惰性模式

貪婪模式——在匹配成功的前提下,盡可能多的去匹配

惰性模式——在匹配成功的前提下,盡可能少的去匹配

解釋一:碼文并茂

使用正則表達式中的貪婪、惰性的量詞可以控制表達式匹配過程,我們知道量詞?、*、+的意義,可以指定相關模式出現(xiàn)的次數(shù),默認的情況下我們使用的是貪婪量詞,它的匹配過程是從整個字符串開始查看,如果不匹配就去掉最后一個,再看看是否匹配,如此循環(huán)一直到匹配或字符串空為止,如:

vars ="abbbaabbbaaabbb1234";
varre1=/.*bbb/g;//*是貪婪量詞
re1.test(s);

這個匹配過程將從整個字符串開始:

re1.test("abbbaabbbaaabbb1234");//false ,則去掉最后一個字符4再繼續(xù)
re1.test("abbbaabbbaaabbb123");//false ,則去掉最后一個字符3再繼續(xù)
re1.test("abbbaabbbaaabbb12");//false ,則去掉最后一個字符2再繼續(xù)
re1.test("abbbaabbbaaabbb1");//false ,則去掉最后一個字符1再繼續(xù)
re1.test("abbbaabbbaaabbb");//true ,結束

在貪婪量詞的后面加多一個?就變成了惰性量詞,它的匹配過程相反,是從前面第一個開始,不匹配則加一個,如此循環(huán)直到字符串結束,以上面的為例子。

vars ="abbbaabbbaaabbb1234";
varre1=/.*?bbb/g;//*?是惰性量詞
re1.test(s);

它的匹配過程如下:

re1.test("a");//false, 再加一個
re1.test("ab");//false, 再加一個
re1.test("abb");//false, 再加一個
re1.test("abbb");//true, 匹配了,保存這個結果,再從下一個開始
re1.test("a");//false, 再加一個
re1.test("aa");//false, 再加一個
re1.test("aab");//false, 再加一個
re1.test("aabb");//false, 再加一個
re1.test("aabbb");//true, 匹配了,保存這個結果,再從下一個開始

小結:

默認的貪婪匹配是從后往前匹配,最大長度的匹配,惰性匹配就是在量詞后面加個?從字符串的前面開始匹配,最小長度的匹配

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript替換操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript中json操作技巧總結》、《JavaScript錯誤與調(diào)試技巧總結》及《JavaScript數(shù)學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • java和js實現(xiàn)的洗牌小程序

    java和js實現(xiàn)的洗牌小程序

    這篇文章主要介紹了java和js實現(xiàn)的洗牌小程序,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • JavaScript中的一些實用小技巧總結

    JavaScript中的一些實用小技巧總結

    這篇文章主要給大家總結介紹了關于JavaScript中的一些實用小技巧,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • Bootstrap每天必學之導航

    Bootstrap每天必學之導航

    Bootstrap每天必學之導航,本文講解的就是大家在做項目時一定會接觸到的導航,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 原生js實現(xiàn)無限循環(huán)輪播圖效果

    原生js實現(xiàn)無限循環(huán)輪播圖效果

    本文主要介紹了原生js實現(xiàn)無限循環(huán)輪播圖效果的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • JavaScript中參數(shù)傳遞方式詳解

    JavaScript中參數(shù)傳遞方式詳解

    這篇文章主要為大家詳細介紹了JavaScript中參數(shù)傳遞三種方式:按值傳遞、引用傳遞和共享傳遞,文中的示例代碼講解詳細,感興趣的可以了解下
    2023-09-09
  • JavaScript?內(nèi)置對象?BigInt詳細解析

    JavaScript?內(nèi)置對象?BigInt詳細解析

    這篇文章主要介紹了JavaScript?內(nèi)置對象?BigInt詳細解析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • js實現(xiàn)移動端tab切換時下劃線滑動效果

    js實現(xiàn)移動端tab切換時下劃線滑動效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)移動端tab切換時下劃線滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • jquery操作ul的一些操作筆記整理(干貨)

    jquery操作ul的一些操作筆記整理(干貨)

    下面小編就為大家?guī)硪黄猨query操作ul的一些操作筆記整理(干貨)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • js面向?qū)ο笾畬崿F(xiàn)淘寶放大鏡

    js面向?qū)ο笾畬崿F(xiàn)淘寶放大鏡

    這篇文章主要為大家詳細介紹了js面向?qū)ο笾畬崿F(xiàn)淘寶放大鏡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JS延時提示框?qū)崿F(xiàn)方法詳解

    JS延時提示框?qū)崿F(xiàn)方法詳解

    這篇文章主要介紹了JS延時提示框?qū)崿F(xiàn)方法,以實例形式較為詳細的分析了JavaScript實現(xiàn)延時提示功能的原理與具體實現(xiàn)步驟,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11

最新評論