亚洲精品国产精品乱码视色,下载应用成人电影AVapp,成人影院下载视频

      <track id="gfhue"><i id="gfhue"></i></track><input id="gfhue"></input>

      1. 更多精彩內(nèi)容,歡迎關注:

        視頻號
        視頻號

        抖音
        抖音

        快手
        快手

        微博
        微博

        一文秒懂python正則表達式常用函數(shù)

        導讀這篇文章主要介紹了python正則表達式常用函數(shù)及使用方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值。

        導讀: 正則表達式是處理字符串類型的"核武器",不僅速度快,而且功能強大。本文不過多展開正則表達式相關語法,僅簡要 介紹 python中正則表達式常用函數(shù)及其使用方 法,以作快速查詢?yōu)g覽。

        01 Re概覽

        Re模塊是python的內(nèi)置模塊,提供了正則表達式在python中的所有用法,默認安裝位置在python根目錄下的Lib文件夾(如 ..\Python\Python37\Lib)。主要提供了3大類字符串操作方法:

        字符查找/匹配

        字符替換

        字符分割

        由于是面向字符串類型的模塊,就不得不提到字符串編碼類型。re模塊中,模式串和搜索串既可以是 Unicode 字符串 (常用str類型) ,也可以是8位字節(jié)串 (bytes,2位16進制數(shù)字,例如\xe5) , 但要求二者必須是同類型字符串。

        02 字符串查找/匹配

        預編譯:compile

        在介紹查找和匹配函數(shù)前,首先需要知道re的compile函數(shù),該函數(shù)可以將一個模式串編譯成正則表達式類型,以便后續(xù)快速匹配和復用

        import?re
        pattern?=?re.compile(r'[a-z]{2,5}')
        type(pattern)?#re.Pattern

        此例創(chuàng)建了一個正則表達式式對象 (re.pattern) ,命名為pattern,用于匹配2-5位小寫字母的模式串。后續(xù)在使用其他正則表達式函數(shù)時,即可使用pattern進行方法調用。

        匹配:match

        match函數(shù)用于從文本串的起始位置開始匹配,若匹配成功,則返回相應的匹配對象,此時可調用group()方法返回匹配結果,也可用span()方法返回匹配起止下標區(qū)間;否則返回None

        import?re
        pattern?=?re.compile(r'[a-z]{2,5}')
        text1?=?'this?is?a?re?test'
        res?=?pattern.match(text1)
        print(res)?#
        if?res:
        ?print(res.group())?#this
        ?print(res.span())?#(0,?4)
        text2?=?'是的,?this?is?a?re?test'
        print(pattern.match(text2))#None

        match函數(shù)還有一個變形函數(shù)fullmatch,當且僅當模式串與文本串剛好全部匹配時,返回一個匹配對象,否則返回None

        搜索:search

        match只提供了從文本串起始位置匹配的結果,如果想從任意位置匹配,則可調用search方法,與match方法類似,當任意位置匹配成功,則立即返回一個匹配對象,也可調用span()方法獲取起止區(qū)間、調用group方法獲得匹配文本串

        import?re
        pattern?=?re.compile(r'\s[a-z]{2}')
        text1?=?'this?is?a?re?test'
        res?=?pattern.search(text1)
        print(res)?#
        if?res:
        ?print(res.group())?#is
        ?print(res.span())?#(4,?7)
        pattern2?=?re.compile(r'\s[a-z]{5}')
        text2?=?'是的,this?is?a?re?test'
        print(pattern2.search(text2))#None

        match和search均用于匹配單個結果,唯一區(qū)別在于前者是從起始位置開始匹配,而后者從任意位置匹配,匹配成功則返回一個match對象。

        全搜索:findall/finditer

        幾乎是最常用的正則表達式函數(shù),用于尋找所有匹配的結果,例如在爬蟲信息提取中,可非常方便地提取所有匹配字段

        import?re
        pattern?=?re.compile(r'\s[a-z]{2,5}')
        text1?=?'this?is?a?re?test'
        res?=?pattern.findall(text1)
        print(res)?#['?is',?'?re',?'?test']

        findall返回的是一個列表對象類型,當無匹配對象時,返回一個空列表。為了避免因同時返回大量匹配結果占用過多內(nèi)存,可以調用finditer函數(shù)返回一個迭代器類型,其中每個迭代元素是一個match對象,可繼續(xù)調用group和span方法獲取相應結果

        import?re
        pattern?=?re.compile(r'\s[a-z]{2,5}')
        text1?=?'this?is?a?re?test'
        res?=?pattern.finditer(text1)
        for?r?in?res:
        ?print(r.group())
        """
        ?is
        ?re
        ?test
        """

        當匹配模式串較為簡單或者僅需單詞調用時,上述所有方法也可直接調用re類函數(shù),而無需事先編譯。此時各方法的第一個參數(shù)為模式串。

        import?re
        pattern?=?re.compile(r'\d{2,5}')
        text?=?'this?is?re?test'
        re.findall('[a-z]+',?text)?#['this',?'is',?'re',?'test']
        03 字符串替換/分割

        替換:sub/subn

        當需要對文本串進行條件替換時,可調用re.sub實現(xiàn) (當然也可先編譯后再用調用實例方法) ,相應參數(shù)分別為模式串、替換格式、文本串,還可以通過增加缺省參數(shù)限定替換次數(shù)和匹配模式。通過在模式串進行分組,可實現(xiàn)字符串的格式化替換(類似字符串的format方法),以實現(xiàn)特定任務。

        import?re
        text?=?'today?is?2020-03-05'
        print(re.sub('-',?'',?text))?#'today?is?20200305'
        print(re.sub('-',?'',?text,?1))?#'today?is?202003-05'
        print(re.sub('(\d{4})-(\d{2})-(\d{2})',?r'\2/\3/\1',?text))?#'today?is?03/05/2020'

        re.sub的一個變形方法是re.subn,區(qū)別是返回一個2元素的元組,其中第一個元素為替換結果,第二個為替換次數(shù)

        import?re
        text?=?'today?is?2020-03-05'
        print(re.subn('-',?'',?text))?#('today?is?20200305',?2)

        分割:split

        還可以調用正則表達式實現(xiàn)字符串的特定分割,相當于.split()方法的一個加強版,實現(xiàn)特定模式的分割,返回一個切割后的結果列表

        import?re
        text?=?'today?is?a?re?test,?what?do?you?mind?'
        print(re.split(',',?text))?#['today?is?a?re?test',?'?what?do?you?mind?']
        04 總結

        python中的re模塊提供了正則表達式的常用方法,每種方法都包括類方法調用(如re.match)或模式串的實例調用(pattern.match)2種形式

        常用的匹配函數(shù):match/fullmatch

        常用的搜索函數(shù):search/findall/finditer

        常用的替換函數(shù):sub/subn

        常用的切割函數(shù):split

        還有其他很多方法,但不是很常用,具體可參考官方文檔

        另外,python還有第三方正則表達式庫regex可供選擇

        到此這篇關于一文秒懂python正則表達式常用函數(shù)的文章就介紹到這了,希望大家以后多多支持好二三四!

        ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

        為你推薦
        資訊專欄
        熱門視頻
        相關推薦
        python正則表達式語法學習筆記 Python&nbsp;垃圾回收機制詳解 Python實現(xiàn)城市公交網(wǎng)絡分析與可視化 Python數(shù)據(jù)分析處理(三)--運動員信息的分組與聚合 基于Python實現(xiàn)PDF區(qū)域文本提取工具 詳解python的循環(huán) python實現(xiàn)新年倒計時實例代碼 Python實現(xiàn)消消樂小游戲 學習python的while循環(huán)嵌套 提升Python運行速度的5個小技巧 Python按鍵或值對字典進行排序 圖像檢索之基于vlfeat實現(xiàn)SIFT特征 python繪圖中的四個繪圖技巧 js中toString方法3個作用 信息系統(tǒng)項目管理師報考條件 信息系統(tǒng)項目管理師報考時間 信息系統(tǒng)項目管理師報名時間 信息系統(tǒng)項目管理師考試時間 pmp與信息系統(tǒng)項目管理師 信息系統(tǒng)項目管理師報考要求 Python常用的正則表達式處理函數(shù)詳解 JS截取字符串的三種方法詳解 PHP遍歷數(shù)組的6種方式總結 php兩種基本的輸出方及實例詳解 php生成唯一uid的解決方法詳解 PHP7中對十六進制字符串處理的問題詳解 PHP對接抖音開發(fā)平臺接口的詳細教程 php7安裝mysqli實例講解 php去掉一維數(shù)組的鍵值的實例方法 PHP中empty()和isset()的區(qū)別介紹 PHP實現(xiàn)JWT的Token登錄認證 php判斷時間戳是否為今天實例講解 PHP7 preg_replace出錯及解決辦法 五年班的學習計劃怎么寫 五年級的學習計劃 初中新學期學習計劃怎么寫 關于英語的學習計劃怎么寫 怎么寫暑假學習計劃書 4年級數(shù)學學習計劃怎么寫 后半學期的學習計劃怎么寫 上學期學習計劃怎么寫
        Top