創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
“專業(yè)、務(wù)實、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 成都創(chuàng)新互聯(lián)是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于做網(wǎng)站、成都做網(wǎng)站、軟件開發(fā)、設(shè)計服務(wù)業(yè)務(wù)。我們始終堅持以客戶需求為導(dǎo)向,結(jié)合用戶體驗與視覺傳達,提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!這篇文章主要介紹了Python正則表達式的案例分析,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
我們能夠使用urllib向網(wǎng)頁請求并獲取其網(wǎng)頁數(shù)據(jù)。但是抓取信息數(shù)據(jù)量比較大,我們可能需要其中一小部分數(shù)據(jù)。對付剛才的難題,就需要正則表達式出馬了。
re 模塊
Python 自1.5版本起通過新增 re (Regular Expression 正則表達式)模塊來提供對正則表達式的支持。使用 re 模塊先將正則表達式填充到 Pattern 對象中,再把 Pattern 對象作為參數(shù)使用 match 方法去匹配的字符串文本。match 方法會返回一個 Match 對象,再通過 Match 對象會得到我們的信息并進行操作。下面介紹幾個 re 常用的函數(shù)。
compile 函數(shù)
compile 是把正則表達式的模式和標(biāo)識轉(zhuǎn)化成正則表達式對象,供 match() 和 search() 這兩個函數(shù)使用。它的函數(shù)語法如下:
re.compile(pattern[, flags])
第一個參數(shù)是pattern,指的正則表達式。
第二個參數(shù)flags是匹配模式,是個可選參數(shù)??梢允褂冒次换?#39;|'表示同時生效,也可以在正則表達式字符串中指定。匹配模式有以下幾種:
該方法返回的結(jié)果是一個 Pattern 對象。
match 函數(shù)
match()函數(shù)只在字符串的開始位置嘗試匹配正則表達式,也就是說只有在 0 位置匹配成功的話才有返回。如果不是開始位置匹配成功的話,match() 就返回 none。它的函數(shù)語法如下:
re.match(pattern, string[, flags])
第一個參數(shù):匹配的正則表達式
第二個參數(shù):要被匹配的字符串
flags 是可選參數(shù),跟 compile 用法相似
匹配成功 re.match 方法返回一個匹配的對象,否則返回None。要想獲得匹配結(jié)果,既可以使用groups()函數(shù)獲取一個包含所有字符串的元組(從 1 到 所含的小組號),也可以使用group(組號)函數(shù)獲取某個組號的字符串。
match 函數(shù)用法的示例代碼:
import re pattern = re.compile('Python') text = 'Python python pythonn' match = re.search(pattern, text) if match: print(match.group()) else: print('沒有匹配')
search 函數(shù)
search() 函數(shù)是掃描整個字符串來查找匹配,它返回結(jié)果是第一個成功匹配的字符串。
re.search(pattern, string[, flags])
參數(shù)用法以及返回結(jié)果跟match函數(shù)用法相同。
search 函數(shù)用法的示例代碼:
import re pattern = re.compile('Python') text = 'welcome to Python world!' match = re.search(pattern, text) if match: print(match.group()) else: print('沒有匹配')
findall 函數(shù)
findall函數(shù)在字符串中搜索子串,并以列表形式返回全部能匹配的所有子串。
re.findall(pattern, string[, flags])
參數(shù)用法以及返回結(jié)果跟match函數(shù)用法相同。
findall 函數(shù)用法的示例代碼:
import re pattern = re.compile('\d+') text = 'one1two2three3four4' list = re.findall(pattern, text) if list: print(list) else: print('沒有匹配')
感謝你能夠認真閱讀完這篇文章,希望小編分享Python正則表達式的案例分析內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!