Python正則匹配判斷手機號是否合法
阿新 • • 發佈:2019-02-20
正則表示式,又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),是電腦科學的一個概念。正則表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串。在很多文字編輯器裡,正則表示式通常被用來檢索、替換那些匹配某個模式的文字。
# 需求
# 定義一個函式,用於判斷輸入的手機號是否合法
# 並判斷它的運營商
# 需求
# 定義一個函式,用於判斷輸入的手機號是否合法
# 並判斷它的運營商
# 思路步驟:
# 1.首先了解三大運營商的號段分佈
# 2.獲取使用者輸入內容
# 3.判斷輸入是否是一個手機號
# 4.如果手機號合法,判斷該手機號段的運營商
# 5.輸出
import re
# 執行效果如下:def phone(): n = input("請輸入一個手機號:") if re.match(r'1[3,4,5,7,8]\d{9}',n): print("您輸入的的手機號碼是:\n",n) #中國聯通: # 130,131,132,155,156,185,186,145,176 if re.match(r'13[0,1,2]\d{8}',n) or \ re.match(r"15[5,6]\d{8}",n) or \ re.match(r"18[5,6]",n) or \ re.match(r"145\d{8}",n) or \ re.match(r"176\d{8}",n): print("該號碼屬於:中國聯通") #中國移動 # 134, 135 , 136, 137, 138, 139, 147, 150, 151, # 152, 157, 158, 159, 178, 182, 183, 184, 187, 188; elif re.match(r"13[4,5,6,7,8,9]\d{8}",n) or \ re.match(r"147\d{8}|178\d{8}",n) or \ re.match(r"15[0,1,2,7,8,9]\d{8}",n) or \ re.match(r"18[2,3,4,7,8]\d{8}",n): print("該號碼屬於:中國移動") else: #中國電信 #133,153,189 print("該號碼屬於:中國電信") else: print("請輸入正確的手機號") if __name__ == '__main__': phone()