快速答案
本答案頁包含 Python 正規表達式 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。
答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。
沒有比對時 re.search 回傳什麼?
答案: None
為什麼: 搜尋失敗會回傳 None,所以呼叫 group() 前要先檢查結果。
執行結果是什麼?
import re
print(re.findall(r"\d", "a1b2"))答案: ['1', '2']
為什麼: 模式一次比對一個數字,findall 回傳字串列表。
模式 r"\d+" 比對什麼?
答案: 一個或多個數字
為什麼: \d 表示數字,+ 表示一次或多次重複。
這段程式列印出什麼?
import re
print(re.sub(r"cat", "dog", "cat cat"))答案: dog dog
為什麼: re.sub 會把每一處 cat 都替換成 dog。
補全匯入語句。
____ re
print(re.findall(r"\d+", "a1"))答案: import
為什麼: 使用 re 模組的函式前必須先匯入。
補全尋找數字組的模式。
import re
text = "a1b22"
print(re.findall(r"____+", text))答案: \d
為什麼: 模式 \d+ 比對一個或多個數字。
補全替換函式。
import re
print(re.____(r"cat", "dog", "cat"))答案: sub
為什麼: re.sub 會替換字串中比對的部分。
補全搜尋呼叫。
import re
print(re.____(r"\d+", "a1").group())答案: search
為什麼: re.search 回傳第一個比對,group() 讀取比對文字。
程式碼的輸出結果是什麼?
import re
print(re.findall(r"\d+", "a1b22")[1])答案: 22
為什麼: 比對結果是 ['1', '22'],索引 1 是 22。
螢幕上會顯示什麼?
import re
print(re.sub(r"\s+", "-", "a b"))答案: a-b
為什麼: 連續空格被替換成一個連字元,結果是 a-b。
這段程式碼會輸出什麼?
import re
print(bool(re.search(r"\d", "abc")))答案: False
為什麼: abc 中沒有數字,search 回傳 None,bool(None) 是 False。
執行結果是什麼?
import re
print(re.findall(r"[A-Z]", "pyTHON"))答案: ['T', 'H', 'O', 'N']
為什麼: 大寫字母是 T、H、O、N。
先試一遍題目
打開 Python 正規表達式 練習頁,用即時回饋回答同樣的 12 道題。