一、正則表達式
? ? ? ? 正則表達式是用來簡潔表達一組字符串的表達式。是通用的字符串表達框架,簡潔表達一組字符串的表達式,針對字符串表達“簡潔”和“特征”思想的工具,判斷某字符串的特征歸屬。
? ? ? ? 用處:表達文本類型的特征;同時查找或替換一組字符串;匹配字符串的全部或部分。
? ? ? ? 編譯:將符合正則表達式語法的字符串轉換成正則表達式特征。
? ? ? ? 語法:正則表達式由字符和操作符構成。
? ? ? ? 正則表達式的常用操作符:
? ? ? ? 實例:
????????
二、RE庫的基本使用
? ? ? ? RE庫是python的標準庫,主要用于字符串的匹配。
? ? ? ? 調(diào)用方法:import re
? ? ? ? RE庫使用raw string類型來表達正則表達式,表示為:r'text',例如:r'[1-9]\d{5}';也使用string類型,但是由于string類型中將斜杠理解為轉義符,所以會更加繁瑣,例如:'[1-9]\\d{5}'。綜上,當正則表達式包含轉義符時使用raw string。
? ? ? ? re庫的主要功能函數(shù):
?re.search(pattern,string,flags=0)? ? ? ??
? ? ? ? ?pattern:正則表達式的字符串或原生字符串表示
????????string:待匹配字符串
? ? ? ? flags:正則表達式使用時的控制標記
? ? ? ? 例子:我們匹配的字符串是BIT100081
re.match(pattern,string,flags=0)
????????pattern:正則表達式的字符串或原生字符串表示
????????string:待匹配字符串
? ? ? ? flags:正則表達式使用時的控制標記
? ? ? ? 仔細看下這個錯誤提示,NoneType這說明現(xiàn)在由match函數(shù)返回的變量match它并沒有一個屬性叫group,也就是說這個match是空的。我們知道,這邊所用的正則表達式表示了一個中國區(qū)的郵政編碼,而它從后邊的string類型中,從起始位置開始匹配,但我們給出的string起始位置并不是郵政編碼,因此它的正則表達式匹配結果應該是空。所以我們在使用之前一定要先判斷這個match是不是空的。
re.findall(pattern,string,flags=0)
????????pattern:正則表達式的字符串或原生字符串表示
????????string:待匹配字符串
? ? ? ? flags:正則表達式使用時的控制標記
re.split(pattern,string,maxsplit=0,flags=0)
????????pattern:正則表達式的字符串或原生字符串表示
????????string:待匹配字符串
? ? ? ? maxsplit:最大分割數(shù),剩余部分作為最后一個元素輸出
? ? ? ? flags:正則表達式使用時的控制標記
????????maxsplit=1表示只匹配第一個位置,匹配之后它將BIT分割出來
re.finditer(pattern,string,flags=0)
????????pattern:正則表達式的字符串或原生字符串表示
????????string:待匹配字符串
? ? ? ? flags:正則表達式使用時的控制標記
re.sub(pattern,repl,string,count=0,flags=0)
????????pattern:正則表達式的字符串或原生字符串表示
? ? ? ? repl:替換匹配字符串的字符串
????????string:待匹配字符串
? ? ? ? count:匹配的最大替換次數(shù)
? ? ? ? flags:正則表達式使用時的控制標記
?
RE庫的另一種等價用法
? ? ? ? re.compile(pattern,flags=0):將正則表達式的字符串形式編譯成正則表達式對象。pattern:正則表達式的字符串或原生字符串表示,flags:正則表達式使用時的控制標記。
三、RE庫的match對象
? ? ? ? match對象就是一次匹配的結果,它包含了很多匹配的相關關系,
match對象的屬性?
????????只有經(jīng)過compile的正則表達式才是真正的正則表達式,如果沒經(jīng)過,就是compile的一種表示。
四、Re庫的貪婪匹配和最小匹配
? ? ? ??r'PY.*n'表示以PY字母開頭,以N結尾,之間可以有若干個字母的字符串。
? ? ? ? 貪婪匹配:RE庫默認采用貪婪匹配,即輸出匹配最長的子串。
? ? ? ? 輸出最短的子串:
????????最小匹配操作符:?文章來源:http://www.zghlxwxcb.cn/news/detail-826133.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-826133.html
?
到了這里,關于【python】網(wǎng)絡爬蟲與信息提取--正則表達式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!