📌  相关文章
📜  手机号码正则表达式python(1)

📅  最后修改于: 2023-12-03 15:10:00.500000             🧑  作者: Mango

Python 手机号码正则表达式

在 Python 中,使用正则表达式可以识别和匹配符合特定模式的字符串。本文将介绍如何使用 Python 正则表达式来匹配中国大陆手机号码。

手机号码的格式

中国大陆手机号码的格式为 11 位数字,以 13、14、15、16、17、18、19 开头。

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

在 Python 中匹配中国大陆手机号码,可以使用 re 模块中的 match() 方法。

import re

def is_valid_mobile_number(number):
    pattern = r"^(13|14|15|16|17|18|19)\d{9}$"
    return re.match(pattern, number) is not None

以上代码中,定义了一个名为 is_valid_mobile_number() 的方法,用于判断传入的参数 number 是否为合法的手机号码。该方法内部使用正则表达式来匹配。

正则表达式的定义为 ^(13|14|15|16|17|18|19)\d{9}$,其中:

  • ^ 表示匹配字符串开头
  • (13|14|15|16|17|18|19) 表示匹配以 13141516171819 开头的字符串
  • \d 表示匹配任意数字字符
  • {9} 表示匹配前面的字符或字符集合恰好出现 9 次
  • $ 表示匹配字符串结尾

因此,该正则表达式可以匹配符合中国大陆手机号码格式的字符串。

示例
print(is_valid_mobile_number("13912345678"))  # True
print(is_valid_mobile_number("19911112222"))  # True
print(is_valid_mobile_number("12345678901"))  # False
print(is_valid_mobile_number("02345678901"))  # False
print(is_valid_mobile_number("1391234567"))   # False
总结

本文介绍了如何使用 Python 正则表达式来匹配中国大陆手机号码。要匹配其他格式的手机号码,可以根据需要修改正则表达式。