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

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

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

正則表達(dá)式貪婪匹配模式,對于初學(xué)者,往往也很容易出錯(cuò)。有時(shí)候需要匹配一個(gè)段代碼內(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)任意字符,個(gè)數(shù)可以是0個(gè)或者多個(gè),正則表達(dá)式可以用:.* ,“.”代表任意字符,默認(rèn)模式不匹配換行,”*” 重復(fù)前面字符0個(gè)或者多個(gè)。

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

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

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

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

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

相關(guān)文章

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

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

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

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

    正則表達(dá)式(Regular Expression)是一個(gè)概念,一種語法、句法的約定。每一種具體的語句(C#,Java,JavaScript)有其對于正則表達(dá)式的具體實(shí)現(xiàn),并且會(huì)有差別。正則表達(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”用于匹配字符串的各個(gè)部分,下面是我創(chuàng)建正則表達(dá)式的備忘單,需要的朋友可以參考下
    2019-04-04
  • 正則表達(dá)式學(xué)習(xí)問答

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

团风县| 镇远县| 姚安县| 台南市| 收藏| 灵武市| 兴仁县| 沂水县| 广昌县| 淮北市| 岳普湖县| 习水县| 寿光市| 拉孜县| 新乡市| 若羌县| 肥西县| 平果县| 高陵县| 七台河市| 宁南县| 灵石县| 高邮市| 四会市| 贵德县| 台东县| 新巴尔虎右旗| 布尔津县| 长沙市| 马龙县| 宁强县| 东城区| 高碑店市| 天全县| 石屏县| 资阳市| 岳西县| 寻甸| 民权县| 蚌埠市| 油尖旺区|