Python 正则表达式实现手机号码格式匹配

2023-04-03 00:00:00 格式 匹配 手机号码

要在 Python 中使用正则表达式实现手机号码格式匹配,可以使用 re 模块。下面是一个示例代码,可以匹配以 13、15、18、17、16 开头的 11 位手机号码:

import re

phone_pattern = re.compile(r'^1[35678]\d{9}$')

phone_numbers = ['13888888888', '15012345678', '18011112222', '17099998888', '16666666666', '12345678901', 'pidancode.com']

for number in phone_numbers:
    if phone_pattern.match(number):
        print(f"{number} 是有效的手机号码")
    else:
        print(f"{number} 不是有效的手机号码")

运行代码后,输出的结果如下:

13888888888 是有效的手机号码
15012345678 是有效的手机号码
18011112222 是有效的手机号码
17099998888 是有效的手机号码
16666666666 是有效的手机号码
12345678901 不是有效的手机号码
pidancode.com 不是有效的手机号码

在代码中,首先使用 re.compile() 函数编译正则表达式,然后使用 match() 方法对每个手机号码进行匹配。如果匹配成功,则说明该手机号码是有效的。在正则表达式中,^ 表示开头,1 表示手机号码的第一个数字必须是 1,[35678] 表示第二个数字可以是 3、5、6、7、8 中的任意一个,\d{9} 表示后面跟着 9 个数字,$ 表示结尾。因此,这个正则表达式可以匹配以 13、15、18、17、16 开头的 11 位手机号码。

相关文章