正則表達(dá)式匹配規(guī)則
正則表達(dá)式匹配規(guī)則
Python 的 re 模塊
在 Python 中担巩,我們可以使用內(nèi)置的 re 模塊來使用正則表達(dá)式眼溶。
有一點(diǎn)需要特別注意的是,正則表達(dá)式使用 對特殊字符進(jìn)行轉(zhuǎn)義,所以如果我們要使用原始字符串徐钠,只需加一個 r 前綴,示例:
r'chuanzhiboke\t\.\tpython'
re 模塊的一般使用步驟如下:
使用 compile() 函數(shù)將正則表達(dá)式的字符串形式編譯為一個 Pattern 對象
通過 Pattern 對象提供的一系列方法對文本進(jìn)行匹配查找役首,獲得匹配結(jié)果尝丐,一個 Match 對象。
最后使用 Match 對象提供的屬性和方法獲得信息衡奥,根據(jù)需要進(jìn)行其他的操作
compile 函數(shù)
compile 函數(shù)用于編譯正則表達(dá)式爹袁,生成一個 Pattern 對象,它的一般使用形式如下:
import re
# 將正則表達(dá)式編譯成 Pattern 對象
pattern = re.compile(r'\d+')
在上面矮固,我們已將一個正則表達(dá)式編譯成 Pattern 對象失息,接下來,我們就可以利用 pattern 的一系列方法對文本進(jìn)行匹配查找了。
Pattern 對象的一些常用方法主要有:
- match 方法:從起始位置開始查找盹兢,一次匹配
- search 方法:從任何位置開始查找邻梆,一次匹配
- findall 方法:全部匹配,返回列表
- finditer 方法:全部匹配绎秒,返回迭代器
- split 方法:分割字符串浦妄,返回列表
- sub 方法:替換
注意:貪婪模式與非貪婪模式
- 貪婪模式:在整個表達(dá)式匹配成功的前提下,盡可能多的匹配 ( * )见芹;
- 非貪婪模式:在整個表達(dá)式匹配成功的前提下剂娄,盡可能少的匹配 ( ? );
- Python里數(shù)量詞默認(rèn)是貪婪的辆童。