最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正則表達(dá)式(regex) 貪婪模式、懶惰模式使用方法

 更新時間:2015年10月14日 23:29:34   投稿:mdxy-dxy  
這篇文章主要介紹了正則表達(dá)式(regex) 貪婪模式、懶惰模式使用方法,需要的朋友可以參考下

正則表達(dá)式貪婪匹配模式,對于初學(xué)者,往往也很容易出錯。有時候需要匹配一個段代碼內(nèi)容,發(fā)現(xiàn)匹配與想要不一致。發(fā)現(xiàn)原來,跟貪婪模式有關(guān)系。如下,我們看下例子:

什么是貪婪模式
字符串有: “<h3>abd</h3><h3>bcd</h3>”,我們想匹配<h3>…</h3>內(nèi)容,正則表達(dá)式如下:

1、h3開頭與結(jié)尾,”<h3>待添加</h3>” <h3></h3>都作為普通字符

2、中間可以出現(xiàn)任意字符,個數(shù)可以是0個或者多個,正則表達(dá)式可以用:.* ,“.”代表任意字符,默認(rèn)模式不匹配換行,”*” 重復(fù)前面字符0個或者多個。

3、最終我們考慮結(jié)果將是:”<h3>.*</h3>” ,也可以是:”<h3>.{0,}</h3>” {}代表,重復(fù)前面指定個數(shù)字符,以下用到是,正則表達(dá)式調(diào)試工具截圖,軟件可以看:正則表達(dá)式工具推薦(學(xué)習(xí)工具、測試工具)

2種結(jié)果都一樣,這是我們不希望得到的,我們希望從左邊開始,第一個出現(xiàn)</h3>,就開始匹配。以上這種模式,是貪婪模式,也是正則表達(dá)式默認(rèn)以這個方法匹配。表示重復(fù)字符,操作符,默認(rèn)都是貪婪模式,如:.*,.+,.{1,},.{0,} 都會匹配最大長度字符。正則表達(dá)式元字符,量詞默認(rèn)首先最大匹配字符串,這些量詞有:+,*,?,{m,n} 。一開始匹配,就直接匹配到最長字符串。

什么是懶惰模式
既然上面幾種,表示字符重復(fù)個數(shù),元字符默認(rèn)都是貪婪模式。如果,我們需要最小長度匹配,也就是懶惰模式,怎么樣寫正則表達(dá)式呢?其實(shí),正則表達(dá)式里面通用方法是,在表示重復(fù)字符元字符,后面加多一個”?”字符即可。上面正則表達(dá)式可以寫成:”<h3>.*?</h3>”,或者”<h3>.{0,}?</h3>” 都可以。

懶惰模式,就匹配到我們需要字符串了。

總結(jié):正則表達(dá)式,表示字符串重復(fù)個數(shù)元字符,'?,+,*,{}' 默認(rèn)都會選擇貪婪模式,會最大長度匹配字符串,而要切換到懶惰模式,就只是在該元字符,后面加多一個”?” 即可切換到非貪婪模式(懶惰模式)。

相關(guān)文章

  • php正則替換變量指定字符的方法

    php正則替換變量指定字符的方法

    這篇文章主要介紹了php正則替換變量指定字符的方法,涉及php使用正則表達(dá)式進(jìn)行字符串替換的技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-03-03
  • 談?wù)勎覍φ齽t表達(dá)式的認(rèn)識

    談?wù)勎覍φ齽t表達(dá)式的認(rèn)識

    正則表達(dá)式(Regular Expression)是一個概念,一種語法、句法的約定。每一種具體的語句(C#,Java,JavaScript)有其對于正則表達(dá)式的具體實(shí)現(xiàn),并且會有差別。正則表達(dá)式30分鐘入門教程講述的是.net(C#)的正則表達(dá)式
    2014-02-02
  • 正則表達(dá)式中環(huán)視的簡單應(yīng)用示例【基于java】

    正則表達(dá)式中環(huán)視的簡單應(yīng)用示例【基于java】

    這篇文章主要介紹了正則表達(dá)式中環(huán)視的簡單應(yīng)用,簡單分析了環(huán)視的概念與功能,并基于java給出了正則表達(dá)式環(huán)視的具體使用技巧,需要的朋友可以參考下
    2017-04-04
  • JavaScript  正則表達(dá)式備忘單實(shí)例代碼

    JavaScript 正則表達(dá)式備忘單實(shí)例代碼

    正則表達(dá)式或“regex”用于匹配字符串的各個部分,下面是我創(chuàng)建正則表達(dá)式的備忘單,需要的朋友可以參考下
    2019-04-04
  • 正則表達(dá)式學(xué)習(xí)問答

    正則表達(dá)式學(xué)習(xí)問答

    正則表達(dá)式是難學(xué)的,這不存在疑義。但是我認(rèn)為,難點(diǎn)也只在語法方面。正則表達(dá)式已經(jīng)有年頭了,它(的語法)誕生于上世紀(jì)七十年代。那是個怎樣的情景?
    2012-09-09
  • JS正則表達(dá)式的驗(yàn)證

    JS正則表達(dá)式的驗(yàn)證

    這篇文章主要介紹了JS正則表達(dá)式的驗(yàn)證的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • PHP preg match正則表達(dá)式函數(shù)的操作實(shí)例

    PHP preg match正則表達(dá)式函數(shù)的操作實(shí)例

    在php中preg_match()函數(shù)是用來執(zhí)行正則表達(dá)式的一個常用的函數(shù)。本文給大家介紹PHP preg match正則表達(dá)式函數(shù)的操作實(shí)例,需要的朋友參考下
    2016-04-04
  • php中常用的正則表達(dá)式的介紹及應(yīng)用實(shí)例代碼

    php中常用的正則表達(dá)式的介紹及應(yīng)用實(shí)例代碼

    在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的語法。
    2009-12-12
  • 解析正則表達(dá)式中的.*,.*?,.+?的含義

    解析正則表達(dá)式中的.*,.*?,.+?的含義

    這篇文章主要介紹了解析正則表達(dá)式中的.*,.*?,.+?的含義,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 完美Email驗(yàn)證正則表達(dá)式

    完美Email驗(yàn)證正則表達(dá)式

    域名由各國文字的特定字符集、英文字母、數(shù)字及“-”(即連字符或減號)任意組合而成, 但開頭及結(jié)尾均不能含有“-”,“-”不能連續(xù)出現(xiàn)
    2012-10-10

最新評論

伊吾县| 康保县| 河北区| 东港市| 大足县| 小金县| 华容县| 喀什市| 长春市| 克什克腾旗| 桂平市| 象山县| 阜康市| 自治县| 肇庆市| 舞钢市| 永胜县| 新宾| 怀安县| 平潭县| 天长市| 淳安县| 兴化市| 冕宁县| 乡宁县| 新龙县| 巴彦淖尔市| 安图县| 拉萨市| 南城县| 左云县| 溆浦县| 五家渠市| 普格县| 昌图县| 菏泽市| 沁源县| 通榆县| 江门市| 赫章县| 洪泽县|