已有183人关注
问题:为什么pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'中的匹配次数是8,而电话号码13*后面的数字位数是9,为什么?
发表在Python图书答疑 2020-07-24 《零基础学Python》第5章 字符串及正则表达式 152页-152页
是否精华
版块置顶:

import re  # 导入Python的re模块


pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'

mobile = '13634222222'

match = re.match(pattern,mobile)  # 进行模式匹配

if match == None:  # 判断是否为None,为真表示匹配失败

    print(mobile,'不是有效的中国移动手机号码。')

else:

    print(mobile,'是有效的中国移动手机号码。')

    

mobile = '13122222221'

match = re.match(pattern,mobile)  # 进行模式匹配

if match == None:   # 判断是否为None,为真表示匹配失败

    print(mobile,'不是有效的中国移动手机号码。')

else:

    print(mobile,'是有效的中国移动手机号码。')


问题:为什么pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'中的匹配次数是8,而电话号码13*后面的数字位数是9?我觉得{8}里应该是9,对[4-9]范围匹配9次,才能和电话号码13*后的位数相同啊


分享到:
精彩评论 1
houhou0001
学分:58 LV3
2020-08-15
沙发

[4-9]表示4-9 里面的一个数,{8}表示一个8位数

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照