import re test = r'^\d{3}\-\d{3,8}$' num = '010-12345' print(re.match(test,num))#<re.Match object; span=(0, 9), match='010-12345'> match()方法判斷是否匹配,若是匹配成功,返回一個Match對象,不然返回None str1 = 'a b c' print(re.split('\s+',str1))#['a', 'b', 'c'] 正則表達式切分字符串 test1 = r'^(\d{3})-(\d{3,8})$'#用()表示的就是要提取的分組(Group),^(\d{3})-(\d{3,8})$分別定義了兩個組 str2 = re.match(test1,num) print(str2.groups())#('010', '12345') print(str2.group(0))#010-12345 group(0)永遠是原始字符串,group(1)、group(2)……表示第一、二、……個子串 print(str2.group(1))#010 print(str2.group(2))#12345 print(re.match(r'^(\d+)(0*)$', '102300').groups())#('102300', '') 因爲\d+採用貪婪匹配,直接把後面的0所有匹配了,結果0*只能匹配空字符串了 print(re.match(r'^(\d+?)(0*)$', '102300').groups())#('1023', '00') 必須讓\d+採用非貪婪匹配(也就是儘量少匹配),才能把後面的0匹配出來,加個?就能夠讓\d+採用非貪婪匹配 #若是一個正則表達式要重複使用幾千次,出於效率的考慮,咱們能夠預編譯該正則表達式,接下來重複使用時就不須要編譯這個步驟了,直接匹配 re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$') print(re_telephone.match('010-12345').groups())#('010', '12345') 編譯後生成Regular Expression對象,因爲該對象本身包含了正則表達式,因此調用對應的方法時不用給出正則字符串