设为首页 加入收藏

TOP

Python编程快速上手 - 第7章 - 习题答案
2019-05-12 02:34:29 】 浏览:140
Tags:Python 编程 快速 上手 习题 答案

《Python编程快速上手——让繁琐工作自动化》

(《Automate the Boring Stuff with Python》)

刚看完第7章「模式匹配与正则表达式」,现在做一遍课后习题,不是标准答案哈,欢迎拍砖

第134页 7.17 习题

1、创建 Regex 对象的函数是什么?

向 re.compile() 传入一个字符串值,表示正则表达式,它将返回一个Regex 模式对象(或者就简称为 Regex 对象)。

2、在创建 Regex 对象时,为什么常用原始字符串?

因为正则表达式常常使用倒斜杠(也就是\),向 re.compile() 函数传入原始字符串就很方便,而不是输入额外的倒斜杠。 比如:想要查找
138-8888-8888 这种格式的手机号:

用原始字符串表示: 输入 r’\d\d\d-\d\d\d\d-\d\d\d\d’
不用原始字符串表示 输入 '\\d\\d\\d-\\d\\d\\d\\d-\\d\\d\\d\\d’

显然,用原始字符串要简单得多。

3、search() 方法返回什么?

search() 方法查找传入的字符串,寻找该正则表达式的所有匹配。

  • 如果字符串中含有该模式,search() 方法将返回一个 Match 对象。
  • 如果字符串中没有找到该正则表达式模式,search() 方法将返回 None。

4、通过 Match 对象,如何得到匹配该模式的实际字符串?

Match 对象有一个 group() 方法,它返回被查找字符串中实际匹配的文本。

5、用 r’(\d\d\d)-(\d\d\d-\d\d\d\d)’ 创建的正则表达式中,分组 0 表示什么?分组 1 呢?分组 2 呢?

如果向 group() 方法传入 0 或者不传入参数,即 group(0) 或 group(),将返回整个匹配的文本。因此,分组 0
表示(\d\d\d)-(\d\d\d-\d\d\d\d)。分组 1 表示第一个括号中包含的内容,即(\d\d\d)。分组 2
表示第二个括号中包含的内容,即(\d\d\d-\d\d\d\d)。

6、括号和句点在正则表达式语法中有特殊的含义。如何指定正则表达式匹配真正的括号的句点字符?

需要在括号和句点前,加上倒斜杠(也就是\)进行转义。

7、findall()方法返回一个字符串的列表,或字符串元组的列表。是什么决定它提供哪种返回?

  • 如果正则表达式没有分组,如\d\d\d-\d\d\d\d-\d\d\d\d,findall()将返回一个匹配字符串的列表。如[‘138-8888-8888’,
    ‘139-9999-9999’]。
  • 如果正则表达式有分组,如(\d\d\d)-(\d\d\d\d)-(\d\d\d\d),findall()将返回一个字符串的元组的列表,每个分组对应一个字符串。如[(‘138’,‘8888’,‘8888’),
    (‘139’,‘9999’,‘9999’)]。

8、在正则表达式中,|字符表示什么意思?

|字符叫做“管道”。如果希望匹配许多表达式中的一个时,可以使用它。如 r’beijing|shanghai|gaungzhou’。

9、在正则表达式中,?字符有哪两种含义?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇网页静态化之Freemarker 下一篇hadoop-uber作业模式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目