答案頁 · 12 道題

Python 正規表達式練習答案

本頁彙整 Python 正規表達式 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python 正規表達式 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。

01 · 選擇題

沒有比對時 re.search 回傳什麼?

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

答案: None

為什麼: 搜尋失敗會回傳 None,所以呼叫 group() 前要先檢查結果。

02 · 選擇題

執行結果是什麼?

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

答案: ['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. cat cat
  3. dog 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 道題。

練習本課