任务描述
本关任务:运用正则表达式的字符组表示方法,编写一个能从文本中快速匹配到python和Python的小程序。
相关知识
为了完成本关任务,你需要掌握:
1.正则表达式的字符组的表达方式;
2.Python中 re模块中获取多个匹配的使用方法。
在上一个任务中,已经了解了只包含简单字母数字的正则表达式,但如果仅仅如此,那么太小瞧正则表达式的威力了。正则表达式强大的地方在于能够指定用于匹配的文本模式。本关来学习正则表达式的字符组匹配。
1、获得多个匹配信息
在很多常见的场景中需要进行多个匹配,比如在学生名单中过滤出所有的张姓学生的个数。
如果有这种需求咱们可以使用re模块中的findall 或者 finditer方法。两个方法的区别在于 findall 返回的是一个列表,finditer返回的是一个生成器。
l = re.findall(r’张’,‘张三 张三丰 张无忌 张小凡’)
print(l)
[‘张’, ‘张’, ‘张’, ‘张’]
在这个例子中,我们会发现findall返回了4个“张”,这是因为“张”字在后面的字符串中出现了4次。即findall返回了所有的匹配信息。
2、字符组
字符组允许匹配一组可能出现的字符,在正则表达式中用[]表示字符组标志,举个例子。
‘I like Python3 and I like python2.7 ’
在这句话中,既有大写的Python,又有全部是小写的python。如果我要求都匹配出来,这时候该怎么 *** 作了?这就是正则匹配中字符组的威力了。下面看下示例。
a = re.findall(r’[Pp]ython’,'I like Python3 and I like python2.7 ')
print(a)
[‘Python’, ‘python’]
可以发现[Pp]既可以匹配大写的P也可以匹配小写的p,这里值的我们注意的是[Pp]仅匹配一个字符,他表示匹配在这个[]内的某一个。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
从文本中快速匹配到python和Python的小程序,输出匹配到的所有内容。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
测试输入:I LIKE Python3 and i like python2.7;
预期输出:
[Python, python]
开始你的任务吧,祝你成功!
# coding=utf-8
import re
input_str = input()
# 编写获取python和Python的正则,并存储到match_python变量中
########## Begin ##########
match_python = re.findall(r'[Pp]ython',input_str)
########## End ##########
print(match_python)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)