首页上一页 1 下一页尾页 1 条记录 1/1页
问题:为什么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*后的位数相同啊