7、正則表示式re常用方法
阿新 • • 發佈:2020-09-07
- 正則表示式的編譯---可以提高匹配效率
csvt_re = re.compile(r'csvt',re.I) #屬性re.I表示忽略大小寫 print(csvt_re.findall('CSvt')) #列印匹配到的['CSvt']
編譯後的物件使正則表示式匹配更加靈活,物件常用的方法:
- match():決定RE是否在字串剛開始的位置
- search():掃描字串,找到RE匹配的位置,匹配的字串可以是任意位置,沒有的話返回None
- findall():找到RE匹配的所有子串,並作為一個列表返回
- finditer():找到RE匹配的所有子串,並作為一個迭代器返回
match()和search()匹配成功返回一個matchObject,匹配失敗返回None,match Object例項方法:
group()--返回RE匹配的字串
start()---返回匹配開始的位置
end()---返回匹配結束的位置
span()---返回一個元組包含匹配的位置
實際程式中,最常見的是使用將matchObject儲存在一個變數中,然後檢查變數是否為None
- re.sub():替換字串,相比於字串的方法replace()更加靈活
rule = r'c..t' re.sub(rule,'python','csvt crrt cfet ffff') #執行返回字串'python python python ffff' re.subn(rule,'python','csvt crrt cfet ffff') #執行返回元組('python python python ffff',3),表示一共替換了3次
- re.split():切割字串,相比於字串的方法split()更加靈活
>>> re.split(r'[\+\-\*]','123+456-789*aaa') ['123', '456', '789', 'aaa']