python提供re模塊,包含全部正則表達式的功能python
使用r前綴,不用考慮轉義問題正則表達式
如:
s = r'ABC\-001'對象
判斷是否匹配,若是匹配成功,返回一個Match對象,不然返回Noneblog
如:字符串
import re if re.match(r'\w', 'afefe'): print('match') else: print('no')
若是能夠切分,返回切分後的列表;若是不能,以列表返回原字符串it
import re print(re.split(r'\s+', 'a ,b d')) 輸出: ['a', ',b', 'd']
提取子串,()表示提取的分組編譯
import re r = re.match(r'(\d+)-(\d+)', '010-059') print(r.groups()) print(r.group(1)) #group(0)表示原字符串,1表示第一個匹配到的
輸出:
('010', '059')
010class
正則匹配默認是貪婪匹配,也就是匹配儘量多的字符效率
import re r = re.match(r'^(\d+)(0*)$', '010000').groups() print(r)
輸出:
('010000', '')import
import re r = re.match(r'^(\d+?)(0*)$', '010000').groups() print(r)
輸出:
('01', '0000')
當咱們在Python中使用正則表達式時,re模塊內部會幹兩件事情:
若是一個正則表達式要重複使用幾千次,出於效率的考慮,咱們能夠預編譯該正則表達式,接下來重複使用時就不須要編譯這個步驟了,直接匹配:
import re re_num = re.compile(r'^(\d+?)(0*)$') r = re_num.match('010000').groups() print(r)