任务描述
本关任务:编写一个正则表达式的小程序,该小程序具有以下功能:
- 匹配到字符串中重复出现2的数字内容,并打印出其匹配到的列表;
- 匹配到字符串中重复出现4次到7次的数字内容,并打印出其匹配到的列表。
相关知识
为了完成本关任务,你需要掌握:
- 正则表达式重复区间的表达方法;
- Python正则编程。
重复
到目前为止,我们只是学习了关于仅出现一次的字符串匹配,在实际开发过程中,这样肯定不能满足需求,比如要匹配电话号码,比如匹配身份证号,这些都是很多个数字组成的。
如果遇到这样的情况,我们可能期望一个字符组连续匹配好几次。
在正则表达式在一个字符组后加上{N} 就可以表示 {N} 之前的字符组出现N次。举个例子:
a = re.findall(r'[\d]{4}-[\d]{7}','张三:0731-8825951,李四:0733-8794561')
print(a)
输出为:
['0731-8825951', '0733-8794561']
重复区间
可能有时候,我们不知道具体匹配字符组要重复的次数,比如身份证有15位也有18位的。
这里重复区间就可以出场了,语法:{M,N},M是下界而N是上界。
举个例子:
a = re.search