您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python正則表達式的案例分析,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
我們能夠使用urllib向網頁請求并獲取其網頁數據。但是抓取信息數據量比較大,我們可能需要其中一小部分數據。對付剛才的難題,就需要正則表達式出馬了。
re 模塊
Python 自1.5版本起通過新增 re (Regular Expression 正則表達式)模塊來提供對正則表達式的支持。使用 re 模塊先將正則表達式填充到 Pattern 對象中,再把 Pattern 對象作為參數使用 match 方法去匹配的字符串文本。match 方法會返回一個 Match 對象,再通過 Match 對象會得到我們的信息并進行操作。下面介紹幾個 re 常用的函數。
compile 函數
compile 是把正則表達式的模式和標識轉化成正則表達式對象,供 match() 和 search() 這兩個函數使用。它的函數語法如下:
re.compile(pattern[, flags])
第一個參數是pattern,指的正則表達式。
第二個參數flags是匹配模式,是個可選參數。可以使用按位或'|'表示同時生效,也可以在正則表達式字符串中指定。匹配模式有以下幾種:
該方法返回的結果是一個 Pattern 對象。
match 函數
match()函數只在字符串的開始位置嘗試匹配正則表達式,也就是說只有在 0 位置匹配成功的話才有返回。如果不是開始位置匹配成功的話,match() 就返回 none。它的函數語法如下:
re.match(pattern, string[, flags])
第一個參數:匹配的正則表達式
第二個參數:要被匹配的字符串
flags 是可選參數,跟 compile 用法相似
匹配成功 re.match 方法返回一個匹配的對象,否則返回None。要想獲得匹配結果,既可以使用groups()函數獲取一個包含所有字符串的元組(從 1 到 所含的小組號),也可以使用group(組號)函數獲取某個組號的字符串。
match 函數用法的示例代碼:
import re pattern = re.compile('Python') text = 'Python python pythonn' match = re.search(pattern, text) if match: print(match.group()) else: print('沒有匹配')
search 函數
search() 函數是掃描整個字符串來查找匹配,它返回結果是第一個成功匹配的字符串。
re.search(pattern, string[, flags])
參數用法以及返回結果跟match函數用法相同。
search 函數用法的示例代碼:
import re pattern = re.compile('Python') text = 'welcome to Python world!' match = re.search(pattern, text) if match: print(match.group()) else: print('沒有匹配')
findall 函數
findall函數在字符串中搜索子串,并以列表形式返回全部能匹配的所有子串。
re.findall(pattern, string[, flags])
參數用法以及返回結果跟match函數用法相同。
findall 函數用法的示例代碼:
import re pattern = re.compile('\d+') text = 'one1two2three3four4' list = re.findall(pattern, text) if list: print(list) else: print('沒有匹配')
感謝你能夠認真閱讀完這篇文章,希望小編分享Python正則表達式的案例分析內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。