手机号码的规则
- 11位,第一位一定是1
- 第二位和第三位根据不同运营商的号码段有所区别,只有有限的组合是合法的手机号码
- 后8位可以是任意数字
表达式
^1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9])\d{8}$
解释:
^:代表起始,即手机号码只能以1为开头
3[0-9]:代表手机号码第二位可以是3,第三位可以是0-9中任意一个数字
5[0-3,5-9]:代表手机号码第二位也可以是5,第三位是0-3和5-9中的任意一个数字
在这里,以3开头的,以5开头的,以及以8开头的三种情况,我们用“|”来将他们隔开
\d:匹配一个数字字符,等价于 [0-9]
$:终止符,代表不可以再有第12位了
测试用例
import re,sys#导入正则模块 def example(): phone_numbers_true=['13912345678','15912345678','17212345678','18212345678'] phone_numbers_false=['124344534543','4454543534','1234521345'] for i in phone_numbers_true: ret=re.match(r"^1(3[0-9]|5[0