答案页 · 12 道题

Python 正则表达式练习答案

本页汇总 Python 正则表达式 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python 正则表达式 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

没有匹配时 re.search 返回什么?

  1. 空字符串
  2. None正确答案
  3. False
  4. 空列表

答案: None

为什么: 搜索失败会返回 None,所以调用 group() 前要先检查结果。

02 · 选择题

运行结果是什么?

import re
print(re.findall(r"\d", "a1b2"))
  1. ['a', 'b']
  2. [1, 2]
  3. ['1', '2']正确答案
  4. '12'

答案: ['1', '2']

为什么: 模式一次匹配一个数字,findall 返回字符串列表。

03 · 选择题

模式 r"\d+" 匹配什么?

  1. 一个或多个数字正确答案
  2. 只匹配一个数字
  3. 一个或多个字母
  4. 一个字面反斜杠

答案: 一个或多个数字

为什么: \d 表示数字,+ 表示一次或多次重复。

04 · 选择题

这段程序打印出什么?

import re
print(re.sub(r"cat", "dog", "cat cat"))
  1. cat dog
  2. dog cat
  3. cat cat
  4. dog dog正确答案

答案: dog dog

为什么: re.sub 会把每一处 cat 都替换成 dog。

05 · 填空题

补全导入语句。

____ re
print(re.findall(r"\d+", "a1"))

答案: import

为什么: 使用 re 模块的函数前必须先导入。

06 · 填空题

补全查找数字组的模式。

import re
text = "a1b22"
print(re.findall(r"____+", text))

答案: \d

为什么: 模式 \d+ 匹配一个或多个数字。

07 · 填空题

补全替换函数。

import re
print(re.____(r"cat", "dog", "cat"))

答案: sub

为什么: re.sub 会替换字符串中匹配的部分。

08 · 填空题

补全搜索调用。

import re
print(re.____(r"\d+", "a1").group())

答案: search

为什么: re.search 返回第一个匹配,group() 读取匹配文本。

09 · 输出预测

代码的输出结果是什么?

import re
print(re.findall(r"\d+", "a1b22")[1])

答案: 22

为什么: 匹配结果是 ['1', '22'],索引 1 是 22。

10 · 输出预测

屏幕上会显示什么?

import re
print(re.sub(r"\s+", "-", "a  b"))

答案: a-b

为什么: 连续空格被替换成一个连字符,结果是 a-b。

11 · 输出预测

这段代码会输出什么?

import re
print(bool(re.search(r"\d", "abc")))

答案: False

为什么: abc 中没有数字,search 返回 None,bool(None) 是 False。

12 · 输出预测

运行结果是什么?

import re
print(re.findall(r"[A-Z]", "pyTHON"))

答案: ['T', 'H', 'O', 'N']

为什么: 大写字母是 T、H、O、N。

先试一遍题目

打开 Python 正则表达式 练习页,用即时反馈回答同样的 12 道题。

练习本课