re.match和re.search的區(qū)別

re.match函數(shù)只匹配字符串的開始字符列敲,如果開始的字符不符合正則表達(dá)式芭概,匹配就會(huì)失敗妇蛀,返回None鲜屏。
re.search方法匹配整個(gè)字符串,直到找到一個(gè)匹配的對象士葫,匹配結(jié)束沒找到匹配值才返回None狸页。

#! /usr/bin/evn python
#-*- coding:utf-8 -*-

import re

line='Cats are smarter than dogs'
matchObj=re.match(r'dogs',line,re.M|re.I)
if matchObj:
    print('use match,the match string is:',matchObj.group())
else:
    print('No match string!!')

matchObj=re.search(r'dogs',line,re.M|re.I)
if matchObj:
    print('use search,the match string is:',matchObj.group())
else:
    print('No search match string!!')

執(zhí)行結(jié)果如下:

No match string!!
use search,the match string is: dogs

該示例中使用了match類中的分組方法——group路捧。
該方法定義如下:

def group(self,*args):
    """Return one or more subgroups of the match.
    :type:T|tuple
    """

    pass

groups([group],···]):獲得或多個(gè)分組截獲的字符串撒顿,指定多個(gè)參數(shù)時(shí)丑罪,以元祖形式返回。group1可以使用編號(hào)核蘸,也可以使用別名巍糯。編號(hào)0代表整個(gè)匹配的子串啸驯。不填寫參數(shù)時(shí)返回group(0);沒有截獲字符串時(shí)返回None客扎;截獲多次字符串的組時(shí),返回最后一次截獲的子串罚斗。

還有一個(gè)常用的分組方法groups徙鱼。

groups([default]):以元組形式返回全部分組截獲的字符串,相當(dāng)于調(diào)用group(1,2,···;last)。
default表示沒有截獲字符串時(shí)以這個(gè)值代替袱吆,默認(rèn)為None厌衙。

編譯

當(dāng)我們在Python中使用正則表達(dá)式時(shí),re模塊內(nèi)部會(huì)做兩件事情:
(1)編譯正則表達(dá)式绞绒,如果正則表達(dá)式的字符串本身不合法婶希,就會(huì)報(bào)錯(cuò)
(2)用編譯后的正則表達(dá)式匹配字符串
如果一個(gè)正則表達(dá)式需要重復(fù)使用幾千次,處于效率考慮蓬衡,我們可以預(yù)編譯該正則表達(dá)式喻杈,這樣重復(fù)使用時(shí)就不需要便宜這個(gè)步驟了,直接匹配即可:

#狰晚! /usr/bin/python3
#-*- coding:utf-8 -*-
re_telephone=re.compile(r'^(\d{3})-(\d{3,8})$')
print(re_telephone.match('010-12345').groups())
print(re_telephone.match('010-8086').groups())

執(zhí)行結(jié)果:

('010','12345')
('010','8086')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筒饰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子壁晒,更是在濱河造成了極大的恐慌瓷们,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秒咐,死亡現(xiàn)場離奇詭異谬晕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)反镇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門固蚤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人歹茶,你說我怎么就攤上這事夕玩。” “怎么了惊豺?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵燎孟,是天一觀的道長。 經(jīng)常有香客問我尸昧,道長揩页,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任烹俗,我火速辦了婚禮爆侣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幢妄。我一直安慰自己兔仰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布蕉鸳。 她就那樣靜靜地躺著乎赴,像睡著了一般忍法。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上榕吼,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天饿序,我揣著相機(jī)與錄音,去河邊找鬼羹蚣。 笑死原探,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的顽素。 我是一名探鬼主播踢匣,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戈抄!你這毒婦竟也來了离唬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤划鸽,失蹤者是張志新(化名)和其女友劉穎输莺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸诽,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嫂用,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丈冬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱函。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖埂蕊,靈堂內(nèi)的尸體忽然破棺而出往弓,到底是詐尸還是另有隱情,我是刑警寧澤蓄氧,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布函似,位于F島的核電站,受9級(jí)特大地震影響喉童,放射性物質(zhì)發(fā)生泄漏撇寞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一堂氯、第九天 我趴在偏房一處隱蔽的房頂上張望蔑担。 院中可真熱鬧,春花似錦咽白、人聲如沸啤握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恨统。三九已至,卻和暖如春三妈,著一層夾襖步出監(jiān)牢的瞬間畜埋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工畴蒲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悠鞍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓模燥,卻偏偏與公主長得像咖祭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蔫骂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

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

  • re模塊 開始使用re Python通過re模塊提供對正則表達(dá)式的支持么翰。使用re的一般步驟是先將正則表達(dá)式的字符串...
    Alex陌閱讀 1,296評論 0 0
  • 該筆記整理自Wesley Chun著,孫波翔辽旋、李斌浩嫌、李晗譯,人民郵電出版社出版的《Python核心編程》第3版补胚,還...
    hufengreborn閱讀 2,067評論 0 2
  • python模塊之re re:官方文檔是最好的模塊表達(dá)說明码耐。 Regular expression operati...
    道無虛閱讀 378評論 0 1
  • re模塊手冊 本模塊提供了和Perl里的正則表達(dá)式類似的功能,不關(guān)是正則表達(dá)式本身還是被搜索的字符串溶其,都可以...
    喜歡吃栗子閱讀 4,012評論 0 13
  • 本文介紹了Python對于正則表達(dá)式的支持骚腥,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫的完整介紹及使用示例...
    Python程序媛閱讀 1,353評論 0 22