python學習筆記09-python正則表示式
阿新 • • 發佈:2019-02-08
1.正則表示式
當我們在Python中使用正則表示式時,re模組內部會幹兩件事情:
1. 編譯正則表示式,如果正則表示式的字串本身不合法,會報錯。
2. 用編譯後的正則表示式去匹配字串。#匯入正則表示式模組 >> import re #正則匹配電話 >> re.match(r'\d{3}\-\d{3,8}$','010-123456') <_sre.SRE_Match object at 0x7f6632534648> #普通的字串分割 >> 'a b c'.split(' ') ['a', 'b', '', 'c'] #使用正則分割字串 >> re.split(r'\s+','a b c') ['a', 'b', 'c'] #分組(提取字串的子串) >> m = re.match(r'^(\d{3})-(\d{3,8})$','010-12345') >> m <_sre.SRE_Match object at 0x7f66325eda48> #獲取原字串 >> m.group(0) '010-12345' #獲取分組字串 >> m.group(1) '010' >> m.group(2) '12345' #非貪婪匹配(正則預設是貪婪匹配) #要讓\d+採用非貪婪匹配,只用在後面加上一個?就可以了 >> re.match(r'^(\d+?)(0*)$','102300').groups() ('1023', '00') #正則表示式的預編譯 >> re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$') #使用編譯好的正則表示式 >> re_telephone.match('010-12345').groups() ('010', '12345')