Python ---- re模塊 處理正則表達式
re.findall(pattern,string)
功能 : 使用正則表達式匹配字符串
參數 : pattern 正則表達式
string 目标字符串
返回值 : 一個列表 匹配到的所有内容
元字符
1、元字符 abc -->匹配相應的普通字符
ex:In [6]: re.findall("abc","abcdefghabcdhig")
Out[6]: ['abc', 'abc']
2、元字符 : ab|cd ---> 匹配|兩邊任意一個正則表達式符合的情況
注意:| 兩側不要有沒用的空格
3、元字符 : . 匹配規則: 匹配除了換行之外的任意字符
4、元字符: ^ 匹配規則: 匹配一個字符串的開始位置
5、元字符: $ 匹配規則:匹配目标字符串的結束位置
6、元字符 : * 匹配規則: 匹配前面的正則表達式重複0次或多次
7、元字符 : 匹配規則: 匹配前面的正則表達式重複1次或多次
8、元字符: ? 匹配規則: 匹配前面的正則表達式重複0次或1次
9、元字符:{n} 匹配規則 : 匹配指定的重複次數
10、元字符 : {m,n} 匹配規則 : 匹配前面的正則表達式重複 m次 到 n次
11、元字符: [ ] 匹配規則 : 匹配括号範圍内的任意一個字符
12、元字符: [^...] 匹配規則 : 匹配除指定字符集之外的任意字符
13、 \d 匹配任意數字字符 \D 匹配任意非數字字符
14、 \w 匹配任意一個普通字符 \W匹配任意非普通字符
15、\s 匹配任意空字符 \S 匹配任意非空字符
16、\A匹配開始位置 \Z匹配結束位置 絕對匹配 \Aabc\Z ----> abc (且字符串隻是abc)
17、\b 匹配單詞的邊界 \B匹配非單詞的邊界
元字符總結
匹配單個字符:a . \d \D \w \W \s \S [...] [^...]
匹配重複性 : * ? {N} {m,n}
匹配某個位置 : ^ $ \A \Z \b \B
其他 : | () \
re模塊
obj = compile(pattern,flags = 0)
功能: 獲取正則表達式對象
參數: pattern : 正則表達式
flags: 功能标志位,提供更豐富的匹配
返回值 : 正則表達式對象
re模塊和compile對象均有的函數
obj.findall(string,pos,endpos)
功能 : 通過正則表達式匹配字符串
參數 : string 目标字符串
pos 目标字符串的匹配開始位置
endpos 目标字符串的結束位置
返回值 : 匹配到的所有内容以列表返回
* 如果正則表達式有子組則隻顯示子組匹配内容
obj.split(string)
功能 : 按照正則表達式切割目标字符串
參數 : 目标字符串
返回值 : 切割後的内容
obj.sub(replaceStr,string,max)
功能: 替換正則表達式匹配到的内容
參數: replaceStr 要替換的内容
string 目标字符串
max 最多替換幾處
返回值 : 返回替換後的字符串
subn(repl,string,count)
功能: 替換正則表達式匹配到的内容
參數: repl 要替換的内容
string 目标字符串
count 最多替換幾處
返回值 : 返回替換後的字符串和實際替換的個數
re.finditer(pattern,string)
功能 : 使用正則表達式匹配目标内容
參數 : 目标字符串
返回值 : 叠代對象 叠代的每個内容為一個match對象
re.match(pattern,string)
功能 : 匹配一個字符串的開頭
參數 : 目标字符串
返回值 : 如果匹配到返回 match obj
沒有匹配到返回 None
re.search(pattern,string)
功能 : 匹配一個字符串
參數 : 目标字符串
返回值 : 如果匹配到返回 match obj
沒有匹配到返回 None
* match 隻能匹配字符串的開頭位置,search可以匹配任意位置,但是也隻能匹配一處
* 通常match對象調用其屬性時往往需要try異常處理
fullmatch()
要求目标字符串完全匹配
compile 對象特有屬性(re模塊沒有)
flags : 标志位
pattern : 正則表達式
groupindex : 捕獲組形成的字典
groups : 多少個子組
match 對象屬性方法
print(match_obj.pos) #目标字符串開頭位置
print(match_obj.endpos) # 目标字符串結束位置
print(match_obj.re) # 正則表達式對象
print(match_obj.string) # 目标字符串
print(match_obj.lastgroup) # 最後一組的名字
print(match_obj.lastindex) # 最後一組是第幾組
span() 匹配到内容的起止位置
start() 匹配到内容的開始位置
end() 匹配到内容的結束位置
group(n)
功能 : 獲取match 對象匹配的内容
參數 : 默認為0 表示獲取正則整體的匹配内容
如果傳入大于0的正數則表示獲取對應子組匹配内容
返回值:返回匹配到的内容
groups()
功能 : 得到所有子組匹配的内容
groupdict()
功能 :得到所有捕獲組匹配的内容
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!