亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 正則表達(dá)式的高級用法

 更新時(shí)間:2016年12月04日 10:25:23   投稿:hebedich  
作為一個(gè)概念而言,正則表達(dá)式對于Python來說并不是獨(dú)有的。但是,Python中的正則表達(dá)式在實(shí)際使用過程中還是有一些細(xì)小的差別。本文是一系列關(guān)于Python正則表達(dá)式文章的其中一部分。

對于Python來說,學(xué)習(xí)正則就要學(xué)習(xí)模塊re的使用方法。本文將展示一些大家都應(yīng)該掌握的高級技巧。

編譯正則對象

re.compile函數(shù)根據(jù)一個(gè)模式字符串和可選的標(biāo)志參數(shù)生成一個(gè)正則表達(dá)式對象。該對象擁有一系列方法用于正則表達(dá)式匹配和替換。用法上略有區(qū)別,舉個(gè)例子, 匹配一個(gè)字符串可用如下方式:

如果使用compile,將變成:

為什么要這么用呢?其實(shí)就是為了提高正則匹配的速度,重復(fù)利用正則表達(dá)式對象。我們對比一下2種方式的效率:

可以看到第二種方式要快很多。在實(shí)際的工作中你會發(fā)現(xiàn)越多的使用編譯好的正則表達(dá)式對象,效果就越好。

分組(group)

你可能已經(jīng)見過對匹配的內(nèi)容進(jìn)行分組的用法了:

通過對要匹配的對象添加括號,就可以精確的對應(yīng)符合的結(jié)果了。我們還可以進(jìn)行嵌套的分組:

分組可以滿足需求,但是有時(shí)候可讀性很差,那可以對分組進(jìn)行命名:

現(xiàn)在可讀性就非常高了。

字符串匹配

學(xué)過sed的同學(xué)可能見過如下替換用法:

這個(gè)\1表示前面正則匹配到的結(jié)果。上面的sed也就是給匹配到的結(jié)果加上中括號。

在re模塊中也存在這樣的用法:

用命名分組也是可以的:

附近匹配(Look around)

re模塊也支持附近匹配,看看例子就懂了:

正則匹配的時(shí)候使用函數(shù)

之前我們看到的大部分內(nèi)容都是匹配的是一個(gè)表達(dá)式,但是有時(shí)候需求要復(fù)雜得多,尤其是在替換的時(shí)候。

舉個(gè)例子,通過Slack的API能獲取聊天記錄,比如下面這句:

其中<@U1EAT8MG9>和<@U0K1MF23Z>是2個(gè)真實(shí)的用戶,但是被Slack封裝了,需要通過其他接口獲取這個(gè)對應(yīng)關(guān)系,

其結(jié)果類似這樣:

在解析對應(yīng)關(guān)系之后,還希望吧尖括號也去掉,替換后的結(jié)果是「@xiaoming, @laolin 嗯 確實(shí)是這樣的 」

用正則怎么實(shí)現(xiàn)呢?

所以pattern當(dāng)然也可以是一個(gè)函數(shù)

相關(guān)文章

  • 詳解Python如何求不同分辨率圖像的峰值信噪比

    詳解Python如何求不同分辨率圖像的峰值信噪比

    這篇文章主要為大家詳細(xì)介紹了如何利用Python中的?NumPy?和?OpenCV?庫實(shí)現(xiàn)求不同分辨率圖像的峰值信噪比,感興趣的小伙伴可以跟隨不想一起學(xué)習(xí)一下
    2023-01-01
  • python使用pycharm環(huán)境調(diào)用opencv庫

    python使用pycharm環(huán)境調(diào)用opencv庫

    這篇文章主要介紹了python使用pycharm環(huán)境調(diào)用opencv庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    這篇文章主要介紹了Django發(fā)送郵件和itsdangerous模塊的配合使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Numpy數(shù)組的保存與讀取方法

    Numpy數(shù)組的保存與讀取方法

    下面小編就為大家分享一篇Numpy數(shù)組的保存與讀取方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 使用numpy和PIL進(jìn)行簡單的圖像處理方法

    使用numpy和PIL進(jìn)行簡單的圖像處理方法

    今天小編就為大家分享一篇使用numpy和PIL進(jìn)行簡單的圖像處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python 字典訪問的三種方法小結(jié)

    python 字典訪問的三種方法小結(jié)

    今天小編就為大家分享一篇python 字典訪問的三種方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • django之用戶、用戶組及權(quán)限設(shè)置方式

    django之用戶、用戶組及權(quán)限設(shè)置方式

    這篇文章主要介紹了django之用戶、用戶組及權(quán)限設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • DenseNet121模型實(shí)現(xiàn)26個(gè)英文字母識別任務(wù)

    DenseNet121模型實(shí)現(xiàn)26個(gè)英文字母識別任務(wù)

    這篇文章主要為大家介紹了DenseNet121模型實(shí)現(xiàn)26個(gè)英文字母識別任務(wù)的實(shí)例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python如何往列表頭部和尾部添加元素

    python如何往列表頭部和尾部添加元素

    這篇文章主要介紹了python如何往列表頭部和尾部添加元素,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python采集貓眼兩萬條數(shù)據(jù) 對《無名之輩》影評進(jìn)行分析

    Python采集貓眼兩萬條數(shù)據(jù) 對《無名之輩》影評進(jìn)行分析

    這篇文章主要給大家介紹了關(guān)于利用Python榮國采集兩萬條貓眼數(shù)據(jù),對《無名之輩》影評進(jìn)行分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論