<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡(jiǎn)單!
    posts - 96,comments - 52,trackbacks - 0


    貪婪量詞:

    先看整個(gè)字符串是不是一個(gè)匹配。如果沒(méi)有發(fā)現(xiàn)匹配,它去掉最后字符串中的最后一個(gè)字符,并再次嘗試。如果還是沒(méi)有發(fā)現(xiàn)匹配,那么    再次去掉最后一個(gè)字符串,這個(gè)過(guò)程會(huì)一直重復(fù)直到發(fā)現(xiàn)一個(gè)匹配或者字符串不剩任何字符。簡(jiǎn)單量詞都是貪婪量詞。

     惰性量詞:

    先看字符串中的第一個(gè)字母是不是一個(gè)匹配,如果單獨(dú)著一個(gè)字符還不夠,就讀入下一個(gè)字符,組成兩個(gè)字符的字符串。如果還沒(méi)有發(fā)現(xiàn)匹配,惰性量詞繼續(xù)從字符串中添加字符直到發(fā)現(xiàn)一個(gè)匹配或者整個(gè)字符串都檢查過(guò)也沒(méi)有匹配。惰性量詞和貪婪量詞的工作方式恰好相反。

    支配量詞:
    只嘗試匹配整個(gè)字符串。如果整個(gè)字符串不能產(chǎn)生匹配,不做進(jìn)一步嘗試。

    貪婪量詞   惰性量詞    支配量詞                      描述
    -------------------------------------------------------------------------------------
      ?             ??             ?+                      可以出現(xiàn)0次或1次,但至多出現(xiàn)1次
      *             *?            *+                      可以出現(xiàn)任意次,也可以不出現(xiàn)
      +             +?            ++                      出現(xiàn)1次或多次,但至少出現(xiàn)1次
      {n}        {n}?           {n}+                   一定出現(xiàn)n次
      {n,m}    {n,m}?       {n,m}+               至少出現(xiàn)n次,但至多不能超過(guò)m次
      {n,}       {n,}?          {n,}+                 可以出現(xiàn)任意次,但至少出現(xiàn)n次

    例如:我們要從字符串a(chǎn)bbbaabbbaaabbb1234中獲得abbb,aabbb,aaabbb的匹配
    1、貪婪量詞
    1        var regexp = /.*bbb/g;
    2        var a = str.match(regexp);
    3        alert(a.length);   //output:1
    4        alert(a[0]);       //output:abbbaabbbaaabbb

    貪婪量詞的工作過(guò)程可以這樣表示:
      a)abbbaabbbaaabbb1234
      b)abbbaabbbaaabbb123
      c)abbbaabbbaaabbb12
      d)abbbaabbbaaabbb1
      e)abbbaabbbaaabbb //true
      可以看到,貪婪量詞在取得一次匹配后就會(huì)停止工作,雖然我們加了'g'(全局匹配)
    2、惰性量詞

    1        var regexp = /.*?bbb/g;
    2        var a = str.match(regexp);
    3        alert(a.length);   //output:3
    4        alert(a[0]);       //output:abbb
    5        alert(a[1]);       //output:aabbb
    6        alert(a[2]);       //output:aaabbb

    惰性量詞的工作過(guò)程可以這樣表示:
      a)a
      b)ab
      c)abb
      d)abbb //保存結(jié)果,并從下一個(gè)位置重新開(kāi)始
      
      e)a
      f)aa
      g)aab
      h)aabb
      j)aabbb //保存結(jié)果,并從下一個(gè)位置重新開(kāi)始
      
      e)a
      e)aa
      e)aaa
      e)aaab
      e)aaabb
      e)aaabbb  //保存結(jié)果,并從下一個(gè)位置重新開(kāi)始

    由于JS是不支持支配量詞的,所以支配量詞我們只能用JAVA來(lái)演示:

    1        String string = "abbbaabbbaaabbb1234";
    2        Pattern p = Pattern.compile(".*+bbb");
    3        Matcher m = p.matcher(string);
    4        System.out.println(m.find());   //output:false
    5

    因?yàn)橹淞吭~采用一刀切的匹配方式,如:
      a)abbbaabbbaaabbb1234 //false
    posted on 2009-01-07 14:54 零全零美 閱讀(3498) 評(píng)論(3)  編輯  收藏 所屬分類: 正則表達(dá)式

    FeedBack:
    # re: 正則表達(dá)式學(xué)習(xí)筆記(4) 貪婪、惰性和支配量詞
    2009-01-08 09:25 | 于翔
    好強(qiáng)啊  回復(fù)  更多評(píng)論
      
    # re: 正則表達(dá)式學(xué)習(xí)筆記(4) 貪婪、惰性和支配量詞
    2009-01-09 13:53 | 劉凱毅
    上次提了下懶散匹配。沒(méi)想到 blog主 這寫(xiě)的這麼詳細(xì),學(xué)習(xí)了。
    貪婪、惰性和支配量詞 說(shuō)的這麼清楚真太清楚了。
    為了表示與blog共同學(xué)習(xí) 正則,我就寫(xiě)點(diǎn)和本文擦邊的,拋磚引玉把:
    目的:
      使用 javascript a[0];
           java ma.group(0); 來(lái)取得你想要的值
      一正則一匹配,后面不需要多余動(dòng)作。
    內(nèi)容》abbbaabbbaaabbb1234
    $1預(yù)查 或 非消費(fèi)-匹配
    比如上面適用 .*bbb 》a[1]
       alert(a.length); //output:3
       alert(a[0]); //output:abbb
       alert(a[1]); //output:aabbb
       alert(a[2]); //output:aaabbb
    正則》 aa.*?(?=aaa)
    原則上》 必須要知道要匹配后文字
    適用》 javascript/java
    結(jié)果》 a[0] //output:aabbb

    $2 非消費(fèi)-匹配
      正則》(?<=b{3}).*(?=a{3})
      適用》java
      結(jié)果》ma.group(0) = aabbb
      原則》只要知道需要匹配的前后文字,不需要知道自己怎么樣。


    不太爽的地方:非消費(fèi)-后匹配,javascript 沒(méi)有
      就是 (?<=b{3}).*(?=a{3}) 的這個(gè)。







      回復(fù)  更多評(píng)論
      
    # re: 正則表達(dá)式學(xué)習(xí)筆記(4) 貪婪、惰性和支配量詞[未登錄](méi)
    2010-08-08 15:46 | ty
    搜來(lái)搜去都是這篇文章,抄襲成風(fēng)啊。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 激情吃奶吻胸免费视频xxxx| 中国性猛交xxxxx免费看| 国产精品色午夜视频免费看| 野花视频在线官网免费1| 伊人久久大香线蕉亚洲五月天 | 青青操在线免费观看| 亚洲人成网址在线观看| 好男人看视频免费2019中文 | 在线观看av永久免费| 粉色视频在线观看www免费| 久久一区二区免费播放| 久久久无码精品亚洲日韩按摩| 日韩午夜免费视频| a级大片免费观看| 亚洲人成欧美中文字幕| 亚洲高清专区日韩精品| a色毛片免费视频| 亚洲色丰满少妇高潮18p| 亚洲线精品一区二区三区影音先锋| 日本视频一区在线观看免费| 全部在线播放免费毛片| 亚洲国产人成在线观看| 亚洲一级特黄无码片| 成年女人免费视频播放体验区| 本免费AV无码专区一区| 国产AV无码专区亚洲AV蜜芽| 亚洲最新永久在线观看| 国产亚洲精品高清在线| 成人黄页网站免费观看大全| 国产成人精品免费久久久久| 日本视频免费观看| 亚洲综合在线一区二区三区| 色噜噜综合亚洲av中文无码| 国产成人精品曰本亚洲79ren| 女人18特级一级毛片免费视频| 老汉精品免费AV在线播放| 羞羞视频在线观看免费| 亚洲一区二区三区成人网站 | 9久热这里只有精品免费| 亚洲国产精品99久久久久久| 亚洲国产成人精品久久|