手机号判断所属运营商正则表达式
时间: 2023-07-17 08:56:46 浏览: 52
可以通过手机号码前三位来判断其所属运营商,具体规则如下:
中国移动:134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
中国联通:130、131、132、145、155、156、166、175、176、185、186
中国电信:133、149、153、173、177、180、181、189、199
可以使用Python正则表达式匹配手机号码前三位,然后根据匹配结果判断其所属运营商。例如:
import re
def get_operator(phone_number):
pattern = re.compile(r'^1(3[4-9]|4[7]|5[012789]|7[8]|8[23478]|9[8])\d{8}$')
match = pattern.match(phone_number)
if match:
prefix = match.group(1)
if prefix in ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '178', '182', '183', '184', '187', '188', '198']:
return '中国移动'
elif prefix in ['130', '131', '132', '145', '155', '156', '166', '175', '176', '185', '186']:
return '中国联通'
elif prefix in ['133', '149', '153', '173', '177', '180', '181', '189', '199']:
return '中国电信'
return '未知运营商'
phone_number = '13812345678'
operator = get_operator(phone_number)
print(operator) # 输出:中国移动