五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > js正則表達(dá)式(.+)和(.+?) (.*)和(.*?)的區(qū)別

js正則表達(dá)式(.+)和(.+?) (.*)和(.*?)的區(qū)別

文章來源:365jz.com     點擊數(shù):14074    更新時間:2018-10-13 20:38   參與評論

(.+)默認(rèn)是貪婪匹配

(.+?)為惰性匹配

 

疑問號讓.+的搜索模式從貪婪模式變成惰性模式。

var str = 'aaa<div style="font-color:red;">123456</div>bbb'

<.+?>會匹配<div style="font-color:red;">

<.+>會匹配<div style="font-color:red;">123456</div>

要在瀏覽器測試結(jié)果的話,輸入:

var str = 'aaa<div style="font-color:red;">123456</div>bbb'

str.match(/<.+?>/);

str.match(/<.+>/);

 

下面舉個簡單的例子來說明。

1.貪婪匹配是先看整個字符串是否匹配,如果不匹配,它會去掉字符串的最后一個字符,并再次嘗試。如果還不匹配,那么再去掉當(dāng)前最后一個,直到發(fā)現(xiàn)匹配或不剩任何字符。

var str='abcdabceba'

/.+b/         //匹配一個或多個任意字符后面跟一個字母b

執(zhí)行str.match(/.+b/)

第一次(先看整個字符串是否是一個匹配) abcdabceba 不匹配,然后去掉最后一個字符a

第二次(去掉最后一個字符后再匹配) abcdabceb 匹配,返回abcdabceb。

2.惰性匹配是從左側(cè)第一個字符開始向右匹配, 先看第一個字符是不是一個匹配, 如果不匹配就加入下一個字符再嘗式匹配, 直到發(fā)現(xiàn)匹配...

執(zhí)行str.match(/.+?b/)

第一次(讀入左側(cè)第一個字符) a 不匹配加一個再式

第二次 ab 匹配,返回ab

當(dāng)正則表達(dá)式中包含重復(fù)量詞(如:*,?,+)時,通常的行為是匹配盡可能多的字符,比如:a(.*)b去匹配aabab字符串,它會匹配整個字符串,這被稱為貪婪匹配。


$str = 'aabab';

preg_match("/a(.*)b/", $str, $matches);

print_r($matches);



有的時候我們需要懶惰匹配,也就是匹配盡可能少的字符,在量詞后邊加一個問號?,比如(.*?)在能使整個匹配成功的前提下使用最少的重復(fù)。


$str = 'aabab';

preg_match("/a(.*?)b/", $str, $matches);

print_r($matches);

--------------------- 



如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇

發(fā)表評論 (14074人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號