(2018-04-16.Python從Zero到One)五、正則表達(dá)式__5.1.7匹配分組

上一篇文章為:→5.1.6表示邊界

匹配分組

字符 功能
匹配左右任意一個(gè)表達(dá)式
(ab) 將括號(hào)中字符作為一個(gè)分組
\num 引用分組num匹配到的字符串
(?P<name>) 分組起別名
(?P=name) 引用別名為name分組匹配到的字符串

示例1:|

需求:匹配出0-100之間的數(shù)字

#coding=utf-8

import re

ret = re.match("[1-9]?\d","8")
ret.group()

ret = re.match("[1-9]?\d","78")
ret.group()

# 不正確的情況
ret = re.match("[1-9]?\d","08")
ret.group()

# 修正之后的
ret = re.match("[1-9]?\d$","08")
ret.group()

# 添加|
ret = re.match("[1-9]?\d$|100","8")
ret.group()

ret = re.match("[1-9]?\d$|100","78")
ret.group()

ret = re.match("[1-9]?\d$|100","08")
ret.group()

ret = re.match("[1-9]?\d$|100","100")
ret.group()

運(yùn)行結(jié)果:

day21_正則表達(dá)式-01.png

示例2:( )

需求:匹配出163、126臼寄、qq郵箱之間的數(shù)字

#coding=utf-8

import re

ret = re.match("\w{4,20}@163\.com", "test@163.com")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@126.com")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@qq.com")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@gmail.com")
ret.group()

運(yùn)行結(jié)果:

day21_正則表達(dá)式-02.png

練習(xí):

>>> ret = re.match("([^-]*)-(\d+)","010-12345678")
>>> ret.group()
'010-12345678'
>>> ret.group(1)
'010'
>>> ret.group(2)
'12345678'

示例3:\

需求:匹配出<html>hh</html>

#coding=utf-8

import re

# 能夠完成對(duì)正確的字符串的匹配
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</html>")
ret.group()

# 如果遇到非正常的html格式字符串,匹配出錯(cuò)
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</htmlbalabala>")
ret.group()

# 正確的理解思路:如果在第一對(duì)<>中是什么卸察,按理說在后面的那對(duì)<>中就應(yīng)該是什么

# 通過引用分組中匹配到的數(shù)據(jù)即可脯厨,但是要注意是元字符串,即類似 r""這種格式
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", "<html>hh</html>")
ret.group()

# 因?yàn)?對(duì)<>中的數(shù)據(jù)不一致坑质,所以沒有匹配出來
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", "<html>hh</htmlbalabala>")
ret.group()

運(yùn)行結(jié)果:

day21_正則表達(dá)式-03.png

示例4:\number

需求:匹配出<html><h1>www.itcast.cn</h1></html>

#coding=utf-8

import re

ret = re.match(r"<(\w*)><(\w*)>.*</\2></\1>", "<html><h1>www.itcast.cn</h1></html>")
ret.group()

ret = re.match(r"<(\w*)><(\w*)>.*</\2></\1>", "<html><h1>www.itcast.cn</h2></html>")
ret.group()

運(yùn)行結(jié)果:

day21_正則表達(dá)式-04.png

示例5:(?P<name>) (?P=name)

需求:匹配出<html><h1>www.itcast.cn</h1></html>

#coding=utf-8

import re

ret = re.match(r"<(?P<name1>\w*)><(?P<name2>\w*)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.itcast.cn</h1></html>")
ret.group()

ret = re.match(r"<(?P<name1>\w*)><(?P<name2>\w*)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.itcast.cn</h2></html>")
ret.group()

注意:(?P<name>)(?P=name)中的字母p大寫

運(yùn)行結(jié)果:

day21_正則表達(dá)式-05.png

下一篇文章為:→5.1.8re模塊的高級(jí)用法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末合武,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涡扼,更是在濱河造成了極大的恐慌稼跳,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吃沪,死亡現(xiàn)場(chǎng)離奇詭異汤善,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)票彪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門红淡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人降铸,你說我怎么就攤上這事在旱。” “怎么了推掸?”我有些...
    開封第一講書人閱讀 157,812評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵桶蝎,是天一觀的道長(zhǎng)驻仅。 經(jīng)常有香客問我,道長(zhǎng)登渣,這世上最難降的妖魔是什么噪服? 我笑而不...
    開封第一講書人閱讀 56,607評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮胜茧,結(jié)果婚禮上粘优,老公的妹妹穿的比我還像新娘。我一直安慰自己竹揍,他們只是感情好敬飒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評(píng)論 6 386
  • 文/花漫 我一把揭開白布邪铲。 她就那樣靜靜地躺著芬位,像睡著了一般。 火紅的嫁衣襯著肌膚如雪带到。 梳的紋絲不亂的頭發(fā)上昧碉,一...
    開封第一講書人閱讀 49,919評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音揽惹,去河邊找鬼被饿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搪搏,可吹牛的內(nèi)容都是我干的狭握。 我是一名探鬼主播,決...
    沈念sama閱讀 39,071評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼疯溺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼论颅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起囱嫩,我...
    開封第一講書人閱讀 37,802評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恃疯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后墨闲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體今妄,經(jīng)...
    沈念sama閱讀 44,256評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評(píng)論 2 327
  • 正文 我和宋清朗相戀三年鸳碧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盾鳞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,712評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞻离,死狀恐怖腾仅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琐脏,我是刑警寧澤攒砖,帶...
    沈念sama閱讀 34,389評(píng)論 4 332
  • 正文 年R本政府宣布缸兔,位于F島的核電站,受9級(jí)特大地震影響吹艇,放射性物質(zhì)發(fā)生泄漏惰蜜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評(píng)論 3 316
  • 文/蒙蒙 一受神、第九天 我趴在偏房一處隱蔽的房頂上張望抛猖。 院中可真熱鬧,春花似錦鼻听、人聲如沸财著。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撑教。三九已至,卻和暖如春醉拓,著一層夾襖步出監(jiān)牢的瞬間伟姐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工亿卤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愤兵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,473評(píng)論 2 360
  • 正文 我出身青樓排吴,卻偏偏與公主長(zhǎng)得像秆乳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钻哩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評(píng)論 2 350

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