【python爬蟲專項(13)】正則表達式(3)—— 字符搜索、替換與分割

字符搜索

前面進行字符串的匹配都是使用的re.match()方法,此方法的不方便的地方在於,每次匹配都是從開頭進行的,要想找到裏面的某個元素需要前面加上 .* ,有沒有掃描全部的字符串而判斷元素是否存在的方式呢?re.search()就可以上場了

1)re.search(pattern, string, flags=0) → 掃描整個字符串並返回第一個成功的匹配

參數
        pattern:匹配的正則表達式
        string:要匹配的字符串。
        flags:標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等

返回結果 - 和re.match()一致
        匹配成功re.match方法返回一個匹配的對象,否則返回None。
        可以使用group(num) 或 groups() 匹配對象函數來獲取匹配表達式
        通過span()方法用於以元祖形式返回匹配的起始位置和結束位置

re.match與re.search的區別
        re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配

示例
在這裏插入圖片描述
2)findall(pattern, string, flags=0) → 在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表

參數
        pattern:匹配的正則表達式
        string:要匹配的字符串。
        flags:標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等

示例
在這裏插入圖片描述

字符替換

re.sub(pattern, repl, string, count=0, flags=0) → 替換字符串中的匹配項

參數
        pattern : 正則中的模式字符串。
        repl : 替換的字符串,也可爲一個函數。
        string : 要被查找替換的原始字符串。
        count : 模式匹配後替換的最大次數,默認 0 表示替換所有的匹配。
        flags : 編譯時用的匹配模式,數字形式

示例
★★★相比於replace(),可以模糊匹配字符然後替換(等同於re.findall()返回的列表然後只用.join()的方法進行連接)
在這裏插入圖片描述

字符分割

re.split(pattern, string[, maxsplit=0, flags=0]) → 按照能夠匹配的子串將字符串分割後返回列表

參數
        pattern 匹配的正則表達式
        string 要匹配的字符串。
        maxsplit 分隔次數,maxsplit=1 分隔一次,默認爲 0,不限制次數。
        flags 標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等

示例
在這裏插入圖片描述

延伸講一下,關於提取特殊信息

學習了正則表達式之後,對於要提取的數據,可以有多種的方式進行數據的提取,
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章