Skip to content

建立 2026-09-15 更新 2026-09-15

認識正規表示式

正規表示式(Regular Expression,常簡稱 regex 或 RE)是一套描述「字串長什麼樣子」的微型語言。你寫一組規則,引擎就幫你在文字裡找、抽、改、切。Python 透過標準函式庫 re 提供這套能力;語法本身跨語言大致相通,細節以各語言文件為準。

本站用繁體中文整理日常真正會用到的那一層,範例一律用 Python。

最需要掌握的 20%

學 regex 不必先把整份規格背完。先把下面七件事做熟,就能處理大多數「找字、驗證、抽欄位、批次改字」:

  1. 字元類. 任意一字(不含換行)、\d 數字、\w 單字字元、\s 空白、[...] 自訂集合。
  2. 量詞* 零次以上、+ 一次以上、? 零或一次、{n,m} 指定次數;預設貪婪。
  3. 錨點^ 行首、$ 行尾、\b 單字邊界。它們對的是「位置」,不是某一個字。
  4. 群組(…) 捕獲、(?:…) 不捕獲、(?P<name>…) 具名;用 \1\g<name> 回溯。
  5. Python APIre.search 找第一處、re.findall / re.finditer 找全部、re.sub 取代、re.split 切開、re.compile 重用。
  6. 原始字串:模式一律寫 r"...",否則 \n\b 會先被 Python 吃掉。
  7. 旗標re.I 忽略大小寫、re.M^ $ 對每一行、re.S. 含換行、re.X 允許把模式拆行加註解。

regex 適合什麼場景

  • 驗證格式:電子郵件、手機、日期、網址看起來合不合理。
  • 從一段文字抽出欄位:訂單編號、價格、檔名、日誌時間戳。
  • 批次改字:把空白正規化、把日期換成另一種格式。
  • 切開字串:用多種分隔符切 CSV 以外的雜訊文字。

它不是萬用剖析器。HTML、JSON、CSV 有專用函式庫時,不要硬用 regex。寫太「聰明」的模式難讀、難除錯,也容易踩回溯災難(catastrophic backtracking)。

驗證能擋明顯錯誤,不能當唯一防線

例如電子郵件 regex 只能抓「長得像」;真正能不能寄到,要靠寄信或後端確認。密碼規則也一樣:regex 檢查形狀,安全性還需要雜湊、長度與政策。

官方學習資源

正規表示式沒有單一「官方證照」。Python 的權威是官方 HOWTO 與 re 參考文件;語法觀念可對照 Google 的 Python 課與哈佛 CS50P。

Python 官方文件(必看)

入門讀 Regular Expression HOWTO;查函式與旗標用 re 模組。英文原文:HOWTOre

Google Python Class

Python Regular Expressions 搭配 Baby Names 練習。影片見 官方影音

動手練習網站

regex101 可選 Python 風格並看逐步解釋;regexr 偏 JavaScript;RegexOne 適合從零做關卡。RegEGPT 可用自然語言輔助想模式。

建議學習順序

  1. 字元、集合、跳脫量詞
  2. 錨點與邊界群組
  3. search / match / fullmatchfindall / finditer
  4. 驗證擷取
  5. 需要時再看 sub / splitcompile 與旗標日誌

想對畫面,先看 官方影音 的 Google 課或 CS50P,再跟 YouTube 優質教學 的 Corey Schafer。想認識唯客學院,請看 關於我們