正則表達(dá)式中的一些高級(jí)規(guī)則

摘改自揭開(kāi)正則表達(dá)式的神秘面紗

匹配次數(shù)中的貪婪與非貪婪

在使用修飾匹配次數(shù)的特殊符號(hào)時(shí)臭脓,有幾種表示方法可以使同一個(gè)表達(dá)式能夠匹配不同的次數(shù)料仗,比如:"{m,n}", "{m,}", "?", "*", "+"睛低,具體匹配的次數(shù)隨被匹配的字符串而定台囱。這種重復(fù)匹配不定次數(shù)的表達(dá)式在匹配過(guò)程中茵典,總是盡可能多的匹配获黔。比如痹雅,針對(duì)文本 "dxxxdxxxd"仰担,舉例如下:

Paste_Image.png

由此可見(jiàn),"\w+" 在匹配的時(shí)候绩社,總是盡可能多的匹配符合它規(guī)則的字符摔蓝。雖然第二個(gè)舉例中,它沒(méi)有匹配最后一個(gè) "d"愉耙,但那也是為了讓整個(gè)表達(dá)式能夠匹配成功贮尉。同理,帶 "*" 和 "{m,n}" 的表達(dá)式都是盡可能地多匹配朴沿,帶 "?" 的表達(dá)式在可匹配可不匹配的時(shí)候猜谚,也是盡可能的 "要匹配"。這 種匹配原則就叫作 "貪婪" 模式 赌渣。
非貪婪模式:
在修飾匹配次數(shù)的特殊符號(hào)后再加上一個(gè) "?" 號(hào)魏铅,則可以使匹配次數(shù)不定的表達(dá)式盡可能少的匹配,使可匹配可不匹配的表達(dá)式坚芜,盡可能的 "不匹配"览芳。這種匹配原則叫作 "非貪婪" 模式,也叫作 "勉強(qiáng)" 模式鸿竖。如果少匹配就會(huì)導(dǎo)致整個(gè)表達(dá)式匹配失敗的時(shí)候沧竟,與貪婪模式類似,非貪婪模式會(huì)最小限度的再匹配一些缚忧,以使整個(gè)表達(dá)式匹配成功悟泵。舉例如下,針對(duì)文本 "dxxxdxxxd" 舉例:
Paste_Image.png

更多的情況搔谴,舉例如下:

舉例1:表達(dá)式 "<td>(.\*)</td>" 與字符串 "<td><p>aa</p></td> <td><p>bb</p></td>" 匹配時(shí)魁袜,匹配的結(jié)果是:成功;匹配到的內(nèi)容是 "<td><p>aa</p></td> <td><p>bb</p></td>" 整個(gè)字符串敦第, 表達(dá)式中的 "</td>" 將與字符串中最后一個(gè) "</td>" 匹配峰弹。 
舉例2:相比之下,表達(dá)式 "<td>(.\*?)</td>" 匹配舉例1中同樣的字符串時(shí)芜果,將只得到 "<td><p>aa</p></td>"鞠呈, 再次匹配下一個(gè)時(shí),可以得到第二個(gè) "<td><p>bb</p></td>"右钾。

例子:雙引號(hào)換成單引號(hào)(此處為中文標(biāo)點(diǎn))

name = '“a”, “b”';
name.replace(/“([^“”]*?)”/g, "‘$1’");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚁吝,一起剝皮案震驚了整個(gè)濱河市旱爆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窘茁,老刑警劉巖怀伦,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異山林,居然都是意外死亡房待,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)驼抹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)桑孩,“玉大人,你說(shuō)我怎么就攤上這事框冀×鹘罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵明也,是天一觀的道長(zhǎng)宣虾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)温数,這世上最難降的妖魔是什么安岂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮帆吻,結(jié)果婚禮上域那,老公的妹妹穿的比我還像新娘。我一直安慰自己猜煮,他們只是感情好次员,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著王带,像睡著了一般淑蔚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愕撰,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天刹衫,我揣著相機(jī)與錄音,去河邊找鬼搞挣。 笑死带迟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的囱桨。 我是一名探鬼主播仓犬,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舍肠!你這毒婦竟也來(lái)了搀继?” 一聲冷哼從身側(cè)響起窘面,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叽躯,沒(méi)想到半個(gè)月后财边,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡点骑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年制圈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔况。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慧库,靈堂內(nèi)的尸體忽然破棺而出跷跪,到底是詐尸還是另有隱情,我是刑警寧澤齐板,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布吵瞻,位于F島的核電站,受9級(jí)特大地震影響甘磨,放射性物質(zhì)發(fā)生泄漏橡羞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一济舆、第九天 我趴在偏房一處隱蔽的房頂上張望卿泽。 院中可真熱鬧,春花似錦滋觉、人聲如沸签夭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)第租。三九已至,卻和暖如春我纪,著一層夾襖步出監(jiān)牢的瞬間慎宾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工浅悉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趟据,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓术健,卻偏偏與公主長(zhǎng)得像之宿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苛坚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容