正則表達(dá)式

正則表達(dá)式

簡稱為regex,是一些由字符和特殊符號組成的字符串

能夠按照某種模式匹配一系列有相似特征的字符串

符號
特殊字符
擴(kuò)展表示

使用正則表達(dá)式

{M,N}匹配M-N次,最大化優(yōu)先

例如:a{2,5}

? ? aabcd => aa

? ? caaaacd => aaaa

? ? caaaaaaaaacd => aaaaa


匹配特殊字符

需要用"\"進(jìn)行轉(zhuǎn)義

? ? 例如:\.com

? ? ? ? ? ? wyh.com => .com

? ? 例如:http:\/\/w+

? ? ? ? ? ? ssshttp://www.baidu.com => http:/www


指定匹配選項(xiàng)

使用[]指定要匹配的集合

? ? 例如: [abc]{2}? 匹配abc中的任意兩個(gè)字符

? ? ? ? ? ? cba666 => cb

? ? ? ? ? ? xba666 => ba

? ? ? ? ? ? xbb666 => bb

使用[^]指定不要匹配的內(nèi)容

? ? 例如:[^abc]{2}

? ??????????abssjhj12sdab => ss


正則表達(dá)式分組

重復(fù)一個(gè)字符串時(shí)

使用()進(jìn)行分組,使用(?P<name>\w+)指定組名

從左向右,以分組的左括號為標(biāo)志,第一個(gè)出現(xiàn)的分組的組號為1署浩,第二個(gè)為2,以此類推

例如:表達(dá)式(A)(B(C))分組情況解析

? ? ? ? ? ? 0? ? ????????(A)(B(C))????

? ? ? ? ? ? 1????????????(A)

? ? ? ? ? ? 2?????????????(B(C))

? ? ? ? ? ? 3?????????????(C)


使用()對匹配的內(nèi)容分組

? ? 例如:(\d{1,3}\.){3}\d{1,3}

? ??????????192.168.0.0? ? ? ? ? ??

使用\1扫尺、\2反向引用

? ? 例如:S(he) (l..e)s \1r \2r.

????????????She loves her lover.


貪婪模式vs非貪婪模式

貪婪匹配

? ? 在整個(gè)表達(dá)式匹配成功的前提下筋栋,盡可能多的匹配

非貪婪模式

? ? 在整個(gè)表達(dá)式匹配成功的前提下,以最少的匹配字符

默認(rèn)是貪婪模式


舉例:

????表達(dá)式 ab.+c(貪婪模式)

? ????? 測試數(shù)據(jù):abfhasdjfgaghcdhasjdjkcsdhajskdhk

? ????? 匹配結(jié)果:abfhasdjfgaghcdhasjdjkc

????表達(dá)式 ab.+?c(非貪婪模式正驻,只需要在匹配pattern中加上"?")

????????測試數(shù)據(jù):abfhasdjfgaghcdhasjdjkcsdhajskdhk

? ? ????匹配結(jié)果:abfhasdjfgaghc






正則的進(jìn)階(python中的應(yīng)用)

re模塊

re模塊

compile()函數(shù)

compile(pattern, flags=0)

使用任何可選的標(biāo)記來編譯正則表達(dá)式的模式弊攘,然后返回一個(gè)正則表達(dá)式對象

推薦編譯,但不是必須的

code

match()函數(shù)

match(pattern, string, flags=0)

嘗試使用帶有可選的標(biāo)記的正則表達(dá)式的模式來匹配字符串(從頭開始匹配)姑曙。如果匹配成功襟交,就返回匹配對象;如果失敗伤靠,就返回None


findall()函數(shù)

findall(pattern, string[,flags])

查找字符串中所有(非重復(fù))出現(xiàn)的正則表達(dá)式模式婿着,并返回一個(gè)匹配列表


search()函數(shù)

search(pattern, string[, flags])

使用可選標(biāo)記搜索字符串中第一次出現(xiàn)的正則表達(dá)式模式。如果匹配成功,則返回匹配對象竟宋;如果失敗,則返回None

ps:search與match的不同在于search會(huì)一直搜索匹配的字符串形纺,直到第一次匹配成功或者搜索完整個(gè)字符串為止丘侠,而match只會(huì)從頭進(jìn)行搜索若不匹配就返回None


group()與groups()函數(shù)

group(num):返回整個(gè)匹配對象,或者編號為num的特定子組逐样,若匹配對象為空時(shí)蜗字,會(huì)報(bào)錯(cuò),所以使用時(shí)推薦在前面加上if判斷

groups():返回一個(gè)包含所有匹配子組的元組(如果沒有成功匹配脂新,則返回一個(gè)空元組)

groupdict():匹配成功挪捕,返回一個(gè)由帶有名字的子組組成字典


split()函數(shù)

split(pattern, string[, maxsplit])

根據(jù)正則表達(dá)式的模式分隔符,split函數(shù)將字符串分割為列表争便,然后返回成功匹配的列表级零,分割最多操作max次(默認(rèn)分割所有匹配成功的位置)


sub()函數(shù)

sub(pattern, repl, string[, count])

使用repl替換string中每一個(gè)匹配的子串后返回替換后的字符串,最多操作count次(默認(rèn)替換所有)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滞乙,一起剝皮案震驚了整個(gè)濱河市奏纪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斩启,老刑警劉巖序调,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兔簇,居然都是意外死亡发绢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門垄琐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來边酒,“玉大人,你說我怎么就攤上這事此虑∩醺伲” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵朦前,是天一觀的道長介杆。 經(jīng)常有香客問我,道長韭寸,這世上最難降的妖魔是什么春哨? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮恩伺,結(jié)果婚禮上赴背,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好凰荚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布燃观。 她就那樣靜靜地躺著,像睡著了一般便瑟。 火紅的嫁衣襯著肌膚如雪缆毁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天到涂,我揣著相機(jī)與錄音脊框,去河邊找鬼。 笑死践啄,一個(gè)胖子當(dāng)著我的面吹牛浇雹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屿讽,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼昭灵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了聂儒?” 一聲冷哼從身側(cè)響起虎锚,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衩婚,沒想到半個(gè)月后窜护,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡非春,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年柱徙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奇昙。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡护侮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出储耐,到底是詐尸還是另有隱情羊初,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布什湘,位于F島的核電站长赞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闽撤。R本人自食惡果不足惜得哆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哟旗。 院中可真熱鬧贩据,春花似錦栋操、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至近上,卻和暖如春蠕啄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戈锻。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留和媳,地道東北人格遭。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像留瞳,于是被迫代替她去往敵國和親拒迅。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348