亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 正則表達(dá)式量詞與貪婪的使用詳解

正則表達(dá)式量詞與貪婪的使用詳解

熱門標(biāo)簽:怎么在高德地圖標(biāo)注行走軌跡 百度地圖標(biāo)注飯店位置怎么 安徽移動外呼系統(tǒng) 施工地圖標(biāo)注怎么做 個性化地圖標(biāo)注在線 深圳400電話辦理那家好 襄陽房產(chǎn)電銷機(jī)器人招商 清遠(yuǎn)陽山400電話號碼如何申請 百度地圖標(biāo)注名編輯

0.寫在前面

在上一篇文章中,我們學(xué)習(xí)了正則的一些基礎(chǔ)元字符,相信大家都已經(jīng)忘卻的差不多了,可以點(diǎn)擊上面的鏈接再溫習(xí)下。

今天我們一起來學(xué)習(xí)下正則中量詞的三種匹配模式,貪婪模式、非貪婪模式、獨(dú)占模式,這些模式會改變正則中量詞的匹配行為,是每次貪婪的匹配到更多呢,還是不貪婪見好就收呢,如果不了解這些,我們寫出的正則很可能是錯誤的,甚至?xí)l(fā)嚴(yán)重的線上性能問題。

1.量詞

本篇文章所講的內(nèi)容和量詞關(guān)系比較密切,先回顧下:

我們還可以用 {m,n} 的方式來表示 * + ? 這3種元字符:

元字符 同義表示方法 示例
* {0,} ab*
可以匹配
a 或者 abb
+ {1,} ab+
可以匹配
ab 或者 abb
但不能匹配 a
? {0,1} ab?
可以匹配 a 或者 ab
但不能匹配 abb

2.貪婪模式前傳

在正則中,表示次數(shù)的量詞默認(rèn)是貪婪的,在貪婪模式下,會盡可能最大長度的去匹配目標(biāo)字符串,我們用正則 a+a* 來匹配字符串 aaabb 測試一下。

2.1 使用 a+ 進(jìn)行匹配

可以看到只匹配到了1個結(jié)果 aaa

對應(yīng)的 Python 代碼如下:

import re

print(re.findall(r'a+', 'aaabb'))

輸出:['aaa']

2.2 使用 a* 進(jìn)行匹配

可以看到匹配到了4個結(jié)果,其中還有3個是空字符串

對應(yīng)的 Python 代碼如下:

import re

print(re.findall(r'a*', 'aaabb'))

輸出:['aaa', '', '', '']

為什么會匹配到空字符串呢?因為星號(*)代表匹配0到多次,匹配0次就是空字符串,那前面還有個 aaa 呢,為什么 aaa 之間的空字符串沒有被匹配到?

這就引入到了我們今天要講的,貪婪模式與非貪婪模式,從字面上很好理解,貪婪模式就是盡可能多的匹配,非貪婪模式就是盡可能少的匹配。

3.貪婪模式

一起來分析下上面正則 a* 的匹配過程:

字符串 a a a b b 空字符串
下標(biāo) 0 1 2 3 4 5

匹配 開始 結(jié)束 說明 匹配內(nèi)容
第一次 0 3 到第一個字母b發(fā)現(xiàn)不匹配,輸出aaa aaa
第二次 3 3 匹配剩下的bb,發(fā)現(xiàn)匹配不上,輸出空字符串 空字符串
第三次 4 4 匹配剩下的b,發(fā)現(xiàn)匹配不上,輸出空字符串 空字符串
第四次 5 5 匹配剩下的空字符串,輸出空字符串 空字符串

a* 在匹配字符串 aaabb 時,會盡可能多的把前面的 a 都匹配上,直到第一個字母 b 不滿足要求為止,匹配上3個 a,后面每次匹配的都是空字符串。

看到這里,相信你已經(jīng)對貪婪模式有了更深的印象,貪婪模式的特點(diǎn)就是盡可能進(jìn)行最大長度匹配,就是有多少要多少,下面我們在一起來看下與它完全相反的匹配模式。

4.非貪婪模式

上面講完了貪婪模式,貪婪模式是盡可能最大長度匹配,非貪婪模式就是盡可能最小長度匹配,在量詞的后面加一個問號(?),就成了非貪婪模式,比如 a*?

對應(yīng)的 Python 代碼如下:

import re

// 貪婪匹配
print(re.findall(r'a*', 'aaabb'))

輸出:['aaa', '', '', '']

// 非貪婪匹配
print(re.findall(r'a*?', 'aaabb'))

輸出:['', 'a', '', 'a', '', 'a', '', '', '']

學(xué)完了貪婪模式與非貪婪模式,你可能會問,我什么情況下會用到呢,下面舉個栗子感受下:

需求是查找一段字符串中,所有雙引號括起來的內(nèi)容,上面使用貪婪匹配與非貪婪匹配的對比,差別很明顯對吧。

5.獨(dú)占模式

不管是貪婪模式,還是非貪婪模式,匹配過程中都需要發(fā)生回溯才能完成想要的功能,但是在有一些場景,我們不需要回溯,匹配不上直接返回失敗就可以了,因此正則匹配中還有另外一種模式,獨(dú)占模式,它和貪婪模式很像,但匹配過程中不會發(fā)生回溯,在一些使用場景中性能會更好。

先來講講什么是回溯,再舉個栗子,有一個正則表達(dá)式和目標(biāo)字符串,我們分別看下在三種匹配模式下都發(fā)生了什么:

5.1 貪婪匹配過程

正則表達(dá)式:ab{1,3}c

目標(biāo)字符串:abbc

在匹配時,b{1,3} 會盡可能長的去匹配目標(biāo)字符串,匹配完 abb 之后,因為要盡可能長的匹配(3個 b),目標(biāo)字符串中的c就會匹配不上,這個時候會發(fā)生向前回溯,吐出當(dāng)前字符 c,用正則中的 c 去匹配,匹配成功。

import regex

print(regex.findall(r'ab{1,3}c', 'abbc'))

輸出:['abbc']

5.2 非貪婪匹配過程

正則表達(dá)式:ab{1,3}?c

目標(biāo)字符串:abbc

在匹配時,b{1,3} 會盡可能短的去匹配目標(biāo)字符串,匹配完 ab 之后,會直接用正則 c 去匹配目標(biāo)字符串剩下的 b,匹配不上,發(fā)生向前回溯,重新用正則 b{1,3} 匹配 目標(biāo)字符串剩下的 b,然后正則 c 匹配 目標(biāo)字符串剩下的 c,匹配成功。

import regex

print(regex.findall(r'ab{1,3}?c', 'abbc'))

輸出:['abbc']

5.3 獨(dú)占匹配過程

在量詞后面加上 + 就是獨(dú)占模式。

正則表達(dá)式:ab{1,2}+bc

目標(biāo)字符串:abbc

在匹配時,b{1,2} 會盡可能長的去匹配目標(biāo)字符串,匹配完 abb 之后,會用正則 b 匹配目標(biāo)字符串剩下的 c,匹配不上,不回溯,匹配失敗。

import regex

print(regex.findall(r'ab{1,2}+bc', 'abbc'))

輸出:[]

6.寫在最后

最后在總結(jié)下上面講到的內(nèi)容:

到這里,正則表達(dá)式的量詞與貪婪就講完了,如果有問題可以給我留言評論,謝謝。

正則表達(dá)式在線校驗工具:https://regex101.com/

到此這篇關(guān)于正則表達(dá)式量詞與貪婪的使用詳解的文章就介紹到這了,更多相關(guān)正則表達(dá)式 量詞與貪婪內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 十分鐘上手正則表達(dá)式 上篇
  • 正則表達(dá)式常見的4種匹配模式小結(jié)
  • 正則表達(dá)式分組與引用的使用
  • 正則表達(dá)式那些讓人頭暈的元字符
  • 正則表達(dá)式之分組的回溯引用問題
  • 十分鐘上手正則表達(dá)式 下篇

標(biāo)簽:駐馬店 欽州 黑河 延邊 臨夏 南昌 阜陽 中衛(wèi)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式量詞與貪婪的使用詳解》,本文關(guān)鍵詞  正則,表達(dá)式,量詞,與,貪婪,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《正則表達(dá)式量詞與貪婪的使用詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于正則表達(dá)式量詞與貪婪的使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产网站在线| 国产成人欧美一区二区三区的| 国产高清在线精品一区a| 国产一级强片在线观看| 亚洲女人国产香蕉久久精品| 国产不卡高清| 免费国产在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品久久久久久免费影院| 韩国毛片 免费| 中文字幕一区二区三区精彩视频| 国产一区二区精品久| 黄视频网站在线免费观看| 免费的黄色小视频| 99热热久久| 99色视频在线观看| 国产一区精品| 精品国产亚一区二区三区| 99色视频| 成人高清视频免费观看| 国产麻豆精品视频| 成人高清免费| 成人影院一区二区三区| 精品在线观看国产| 91麻豆爱豆果冻天美星空| 天天色色色| 国产麻豆精品| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩专区在线播放| 国产精品自拍在线观看| 尤物视频网站在线| 一级女性全黄生活片免费| 午夜欧美成人久久久久久| a级毛片免费观看网站| 亚欧成人毛片一区二区三区四区| 日日日夜夜操| 四虎久久影院| 午夜欧美福利| 免费的黄视频| 欧美一级视频免费观看| 可以免费看毛片的网站| 成人影视在线播放| 国产成人精品在线| 国产一区二区精品久| 久久精品人人做人人爽97| 亚欧视频在线| 欧美激情影院| 国产精品自拍在线| 欧美国产日韩在线| 一级女性大黄生活片免费| 成人av在线播放| 欧美电影免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产香蕉伊思人在线又爽又黄| 一a一级片| 国产一区精品| 麻豆网站在线免费观看| 超级乱淫黄漫画免费| 欧美国产日韩久久久| 精品视频在线观看视频免费视频| 999久久66久6只有精品| 欧美激情伊人| 国产视频在线免费观看| 成人免费一级纶理片| 美国一区二区三区| 午夜在线影院| 在线观看成人网 | 日韩专区在线播放| 日韩中文字幕一区| 日韩在线观看视频网站| 日韩中文字幕在线播放| 精品视频在线观看一区二区 | 午夜激情视频在线观看| 国产91视频网| 日本特黄特色aa大片免费| 中文字幕Aⅴ资源网| 国产综合成人观看在线| 日韩一级黄色| 久久精品免视看国产成人2021| 亚洲精品中文字幕久久久久久| 欧美另类videosbestsex高清| 美女免费毛片| 国产精品自拍亚洲| 日韩欧美一二三区| 欧美一区二区三区性| 欧美一级视频免费| 亚洲 国产精品 日韩| 国产麻豆精品免费密入口| 美女免费精品高清毛片在线视 | 亚洲 激情| 久久国产精品自线拍免费| 中文字幕97| 久久福利影视| 999久久66久6只有精品| 欧美a免费| 免费一级片在线| 日韩专区第一页| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 一级女性大黄生活片免费| 日韩一级黄色| 日韩男人天堂| 黄色短视频网站| 精品国产一区二区三区久久久狼| 国产成+人+综合+亚洲不卡| 国产麻豆精品免费密入口| 国产伦理精品| 国产美女在线一区二区三区| 久久久成人影院| 久草免费在线色站| 国产精品自拍在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲 欧美 91| 日本伦理片网站| 国产一区二区精品| 香蕉视频一级| 日韩欧美一及在线播放| 欧美激情影院| 亚飞与亚基在线观看| 亚洲 激情| 国产亚洲免费观看| 久久精品道一区二区三区| 精品国产亚洲人成在线| a级精品九九九大片免费看| 国产视频久久久| 免费国产在线观看不卡| 国产精品123| 国产一区免费在线观看| 黄视频网站免费观看| 亚洲女人国产香蕉久久精品| 成人免费网站久久久| 美女免费毛片| 九九精品在线播放| 久草免费在线观看| 国产成人精品影视| 成人在免费观看视频国产| 中文字幕一区二区三区 精品| 国产高清在线精品一区二区| 国产不卡在线观看视频| 国产欧美精品午夜在线播放| 99久久精品国产麻豆| 久久精品欧美一区二区| 亚洲天堂免费| 亚洲女初尝黑人巨高清在线观看| 国产不卡精品一区二区三区| 国产综合91天堂亚洲国产| 毛片成人永久免费视频| 一级女性全黄生活片免费| 欧美激情中文字幕一区二区| 日韩字幕在线| 一级女性大黄生活片免费| 91麻豆精品国产自产在线观看一区| 天天做人人爱夜夜爽2020| 日韩免费片| 黄视频网站免费| 日本伦理片网站| 青草国产在线| 亚洲精品中文字幕久久久久久| 精品美女| 成人影视在线观看| 中文字幕一区二区三区精彩视频| 国产激情视频在线观看| 一级毛片视频免费| 欧美一区二区三区性| 日本在线不卡视频| 国产一区二区精品| 日韩在线观看视频免费| 日本特黄一级| 韩国三级视频在线观看| 国产一区二区福利久久| 青草国产在线| 亚洲精品影院| 99热热久久| 成人免费观看的视频黄页| 九九精品在线| 亚洲www美色| 欧美激情一区二区三区在线 | 精品国产香蕉伊思人在线又爽又黄| 精品美女| 日本在线不卡视频| 亚州视频一区二区| 国产美女在线一区二区三区| 国产网站免费视频| 日韩欧美一二三区| 免费毛片播放| 高清一级毛片一本到免费观看| 日韩字幕在线| 成人a大片在线观看| 99色视频在线观看| 夜夜操天天爽| 天天做人人爱夜夜爽2020| 精品久久久久久中文字幕一区| 日韩字幕在线| 黄视频网站在线看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产原创中文字幕| 国产视频久久久| 成人影视在线观看| 日本特黄特色aa大片免费| 国产a网| 91麻豆精品国产高清在线|