python解析电话号码

提取手机号

1
2
3
4
5
6
7
import phonenumbers

txt = '我是xxx,今年x岁,电话是15332198671,我的朋友的电话是15311892310'
m = phonenumbers.PhoneNumberMatcher(txt, 'CN')

for x in m:
print(x.raw_string)

解析手机号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import phonenumbers
from phonenumbers import geocoder, carrier

# 手机号
phone1 = '+8615332198671'
# 使用parse类根据手机号创建了一个解析对象
phone1_obj = phonenumbers.parse(phone1)

# 手机号
phone2 = '15332198672'
# 使用parse类根据手机号创建了一个解析对象
phone2_obj = phonenumbers.parse(phone2, 'CN')

# 解析出来的对象仍然需要验证,以检查是否是一个"可能"的号码或者一个"有效"的号码
print(phonenumbers.is_possible_number(phone1_obj))
print(phonenumbers.is_possible_number(phone2_obj))

if phonenumbers.is_possible_number(phone1_obj):
# 打印此电话号码国家的国际编码
print(phone1_obj.country_code)
# 打印纯号码(去掉国际编码)
print(phone1_obj.national_number)
# 运营商信息
print(carrier.name_for_number(phone1_obj, 'zh'))
# 地理位置信息
print(geocoder.description_for_number(phone1_obj, 'zh'))