最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 正則表達式的高級用法

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

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

編譯正則對象

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

如果使用compile,將變成:

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

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

分組(group)

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

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

分組可以滿足需求,但是有時候可讀性很差,那可以對分組進行命名:

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

字符串匹配

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

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

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

用命名分組也是可以的:

附近匹配(Look around)

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

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

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

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

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

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

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

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

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

  • python中數(shù)據(jù)爬蟲requests庫使用方法詳解

    python中數(shù)據(jù)爬蟲requests庫使用方法詳解

    本篇文章主要介紹了python中數(shù)據(jù)爬蟲requests庫使用方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 基于pandas中expand的作用詳解

    基于pandas中expand的作用詳解

    今天小編就為大家分享一篇基于pandas中expand的作用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • np.where在多維數(shù)組的應(yīng)用方式

    np.where在多維數(shù)組的應(yīng)用方式

    這篇文章主要介紹了np.where在多維數(shù)組的應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python+Appium實現(xiàn)自動搶微信紅包

    Python+Appium實現(xiàn)自動搶微信紅包

    不知從何時開始微信紅包橫空出世,對于網(wǎng)速和手速慢的人只能在一旁觀望,做為python的學(xué)習(xí)者就是要運用編程解決生活和工作上的事情。于是我用python解決我們的手速問題python實現(xiàn)自動搶微信紅包,至于網(wǎng)速慢得那就只能自己花錢提升了。
    2021-05-05
  • Python開發(fā)之快速搭建自動回復(fù)微信公眾號功能

    Python開發(fā)之快速搭建自動回復(fù)微信公眾號功能

    這篇文章主要介紹了Python開發(fā)之快速搭建自動回復(fù)微信公眾號功能的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 總結(jié)Python常用的魔法方法

    總結(jié)Python常用的魔法方法

    今天帶大家學(xué)習(xí)Python的相關(guān)知識,文中對Python常用的魔法方法作了非常詳細(xì)的總結(jié),對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python中一些深不見底的“坑”

    Python中一些深不見底的“坑”

    這篇文章主要給大家介紹了關(guān)于Python中一些深不見底的“坑”,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python中os和shutil模塊實用方法集錦

    Python中os和shutil模塊實用方法集錦

    這篇文章主要介紹了Python中os和shutil模塊實用方法集錦,需要的朋友可以參考下
    2014-05-05
  • Python:一行代碼,導(dǎo)入Python所有庫

    Python:一行代碼,導(dǎo)入Python所有庫

    在本篇內(nèi)容里小編給大家分享如何用一行代碼,導(dǎo)入Python所有庫,有需要的朋友們可以學(xué)習(xí)下,希望能夠給你帶來幫助
    2021-10-10
  • 最新評論

    嘉禾县| 井冈山市| 磴口县| 巴彦县| 肥西县| 宁德市| 吴江市| 阿拉善盟| 昌平区| 和平区| 靖州| 黄骅市| 汉沽区| 威远县| 嘉兴市| 历史| 洪湖市| 田阳县| 东方市| 永福县| 肇庆市| 军事| 溆浦县| 永泰县| 华蓥市| 正蓝旗| 清丰县| 福建省| 灌阳县| 柯坪县| 康平县| 永城市| 旬邑县| 包头市| 封丘县| 鞍山市| 上杭县| 芒康县| 莎车县| 乌海市| 阜新市|