目录
任务描述
本关任务:编写代码,通过re.findall()
模块匹配内容。
相关知识
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,来筛选出符合这个规则的内容。
可以简单理解为:一个强大的搜索工具中,正则表达式就是你要搜索内容的条件表达式。
为了完成本关任务,你需要掌握:1.正则模块函数re.findall()
,2.各种正则表达式元字符的含义。
以下实例均可在命令行
窗口中练习。
re.findall()函数
作用:遍历整个字符串,可以获取其中所有匹配的字符串,返回一个列表。 一般用法: re.findall(r'正则表达式','要匹配的文本')
从小练习接触正则
-
从字符串中匹配单词
to
:import re
text = "0537-146987425,0537-299656897,The moment you think about giving up,think of the reason why you held on so long. Total umbrella for someone else if he, you’re just not for him in the rain.Never put your happiness in someone else’s hands.Sometimes you have to give up on someone in order to respect yourself. aaaa bbbbcc d dddddd"
print(re.findall(r'to',text))
运行结果如下:
-
匹配在
text
中以g
开头的所有单词:print(re.findall(r'\bg\w*?\b',text))
-
查找字母长度为
4
的单词:print(re.findall(r'\b\w{4}\b',text))
-
查找出
xxxx-xxxxxxxxx
格式的数据:print(re.findall(r'\d{4}-\d{8}',text))
正则表达式元字符
通过上面几个小练习,你对正则表达式有了一定的认识,但还是感觉云里雾里不熟悉吧。这是因为正则表达式中的“公式”代表的含义你都不了解。想要学好正则表达式,你就要熟悉这些元字符
代表的含义,除了多练习和多记忆没有什么好办法了。
(以下为一部分常用元字符的介绍,剩余部分用到的时候再去熟悉;)
元字符 | 功能说明 |
---|---|
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
. | 匹配除换行符以外的任意字符 |
\d | 匹配数字 |
\b | 匹配单词头或单词尾 |
\w | 匹配任何字母、数字以及下划线 |
\s | 匹配任何空白字符,包括空格、制表符、换页符 |
\B | 与\b相反,匹配非单词边界 |
\W | 与\w相反 |
\S | 与\s相反 |
{m,n} | {}前的字符或子模式重复至少m次,至多n次 |
编程要求
根据提示,补全右侧编辑器中 Begin 至 End 区间的代码,实现以下功能:
- 匹配字符单词
Love
; - 匹配以
w
开头的完整单词; - 查找字母长度为
3
的单词。
测试说明
平台会对你编写的代码进行测试:
测试输入:
Love your parents. We are too busy growing up yet we forget that they are already growing.
预期输出:
['Love']
['we']
['are', 'too', 'yet', 'are']
开始你的任务吧,祝你成功!
import re
text = input()
#********** Begin *********#
#1.匹配字符单词 Love
print(re.findall(r'Love',text))
#2.匹配以 w 开头的完整单词
print(re.findall(r'\bw\w*?\b',text))
#3.查找三个字母长的单词(提示:可以使用{m,n}方式)
print(re.findall(r'\b\w{3}\b',text))
#********** End **********#to