1. 程式人生 > >python學習筆記09-python正則表示式

python學習筆記09-python正則表示式

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')