跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

什麼是正則表達式?

為什麼要學 Regex?

想像你是一個廣告業務,每天要從大量文字中找出特定格式的資料:

  • 從一堆文字中找出所有 email 地址
  • 從報表中找出所有 手機號碼
  • 檢查客戶輸入的 日期格式 是否正確
  • 從網址中提取 UTM 參數

如果用肉眼一行一行看,效率很低。正則表達式(Regular Expression,簡稱 Regex) 就是用來解決這類問題的工具。

Regex 是什麼?

簡單來說,Regex 是一種 文字比對的規則語言。你寫一個「模式(pattern)」,電腦就會幫你從文字中找出符合這個模式的所有內容。

生活比喻

場景Regex 的角色
在電話簿裡找「091 開頭的號碼」模式:091\d{7}
在信件裡找「@91app.com 的 email」模式:\w+@91app\.com
檢查日期是不是 YYYY-MM-DD模式:\d{4}-\d{2}-\d{2}

Regex 在哪裡可以用?

  • Excel:Find & Replace(進階模式)
  • Google SheetsREGEXMATCHREGEXEXTRACT 函數
  • 程式語言:Python、JavaScript、SQL 都支援
  • 文字編輯器:VS Code、Sublime Text 的搜尋功能
  • Google Analytics:篩選器設定

本課程的操作方式

在這門課中,你會看到一個程式碼編輯器。輸入格式如下:

第一行:正則表達式(pattern)
第二行起:要測試的文字(每行一筆)

按「執行」後,系統會告訴你每行文字是否匹配,以及匹配到了什麼。

Demo:體驗你的第一個 Regex

最簡單的 Regex 就是直接寫出你要找的文字。試試看用 shop 來比對下面的文字:

注意:Regex 預設區分大小寫,所以 SHOP 不會被 shop 匹配到。

Demo:用點(.)匹配任意字元

. 在 Regex 中代表「任意一個字元」。看看 s.op 可以配到什麼:

s.op 會配到 shopstopslop,因為 . 可以代替任何一個字元。

接下來

下一課我們開始學習最基本的比對規則!

AI 協作:學了這個,跟 AI 怎麼配合?

正則表達式(Regex)是最適合「讓 AI 幫你寫」的技術——人類寫 Regex 又慢又容易錯。

你的人類優勢:

  • 你能用白話描述要找的模式(「09 開頭的手機號碼」「含有 @ 的 email」)
  • 你能準備測試案例,驗證 AI 寫的 Regex 是否正確

可以這樣跟 AI 說:

我要在一段文字中找出所有日期,格式是 YYYY-MM-DD 或 YYYY/MM/DD,幫我寫 Regex。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩

挑戰任務

Task 1

寫一個 Regex 找出包含 'hello' 的文字

Task 2

寫一個 Regex 找出 'shop' 這個字

Next Lesson →