2020-12-22
import re
pattern = r'(13[4-9]\d{8})$|(15[01289]\d{8})$'
mobile = input("请输入您的手机号码:")
match = re.match(pattern, mobile)
if match == None:
print(mobile, "不是有效的中国移动手机号码")
else:
print(mobile, "是有效的中国移动手机号码")
【知识点】
# 行定位符:
描述字符串的边界 ^行的开始 $行的结尾
# 元字符
# .匹配除换行符以外的任意字符
# \w 匹配字母、数字、下划线或汉字
# \W 匹配除字母、数字、下划线或汉字以外的字符
# \s 匹配单个的空白符(包括TAB键和换行符)
# \S 除单个空白符(包括TAB键和换行符)以外的所有字符
# \b 匹配单词的开始或结束,单词的分界符通常是空格,标点符号或者换行
# \d 匹配数字
# 限定符
# ? 匹配前面的字符零次或一次 如:colou?r 结果:匹配colour和color
# + 匹配前面的字符一次或多次 如:go+gle 结果:匹配范围从gogle到goo……gle
# * 匹配前面的字符零次或多次 如:go*gle 结果:匹配范围从ggle到goo……gle
# {n} 匹配前面的字符n次 如:go{2}gle 结果:只匹配google
# {n,} 匹配前面的字符最少n次 如:go{2,}gle 结果:匹配范围从google到goo……gle
# {n,m} 匹配前面的字符最少n次,最多m次 如:employe{0,2} 结果:匹配employ,employe和employee
# 匹配身份证
# (^\d{15}$)|(^\d{18}$)|(^\d{17})|(\d|X|x)$
网友评论