第1关:正则表达式基础知识

本文介绍了如何使用Python的re.findall()函数结合正则表达式元字符,实现匹配字符串中的特定单词(如Love),以w开头的完整单词,以及查找长度为3字母的单词。通过实例演示了正则表达式的应用和元字符的功能。
摘要由CSDN通过智能技术生成

目录

任务描述

相关知识

re.findall()函数

从小练习接触正则

正则表达式元字符

编程要求

测试说明


任务描述

本关任务:编写代码,通过re.findall()模块匹配内容。

相关知识

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,来筛选出符合这个规则的内容。

可以简单理解为:一个强大的搜索工具中,正则表达式就是你要搜索内容的条件表达式。

为了完成本关任务,你需要掌握:1.正则模块函数re.findall(),2.各种正则表达式元字符的含义。

以下实例均可在命令行窗口中练习。

re.findall()函数

作用:遍历整个字符串,可以获取其中所有匹配的字符串,返回一个列表。 一般用法: re.findall(r'正则表达式','要匹配的文本')

从小练习接触正则
  • 从字符串中匹配单词to:

     
      
    1. import re
    2. 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"
    3. print(re.findall(r'to',text))

    运行结果如下:

  • 匹配在text中以g开头的所有单词:

     
      
    1. print(re.findall(r'\bg\w*?\b',text))

  • 查找字母长度为4的单词:

     
      
    1. print(re.findall(r'\b\w{4}\b',text))

  • 查找出xxxx-xxxxxxxxx格式的数据:

     
      
    1. 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的单词。
测试说明

平台会对你编写的代码进行测试:

测试输入:

 
  1. Love your parents. We are too busy growing up yet we forget that they are already growing.

预期输出:

 
  1. ['Love']
  2. ['we']
  3. ['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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Dora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值