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

字元類別與量詞

字元類別 []

用方括號定義「可接受的字元範圍」:

  • [abc]:a 或 b 或 c
  • [0-9]:0 到 9 的數字(等同 \d
  • [a-z]:小寫字母
  • [A-Za-z]:所有英文字母

反向字元類別 [^]

[^...] 代表「不是這些字元」:

量詞:控制重複次數

量詞意義範例
*0 次或多次ab*c → ac, abc, abbc
+1 次或多次ab+c → abc, abbc(不配 ac)
?0 次或 1 次colou?r → color, colour
{n}恰好 n 次\d{3} → 三個數字
{n,m}n 到 m 次\d{2,4} → 2 到 4 個數字

+(一次或多次)

*(零次或多次)

{n}(恰好 n 次)

{n,m}(n 到 m 次)

組合練習

找出所有手機號碼(09 開頭 + 8 個數字):

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

字元類別和量詞是 Regex 的核心工具。AI 寫這些飛快,但你要能看懂。

你的人類優勢:

  • 你知道要匹配的「規格」:只要數字?要包含中文?允許特殊符號?
  • 你能看懂 AI 寫的 [A-Za-z0-9]\d{3,5} 代表什麼

可以這樣跟 AI 說:

幫我寫一個 Regex 驗證台灣手機號碼:09 開頭、後面 8 碼數字、總共 10 碼。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩
DEMO 5可以修改程式碼試玩
DEMO 6可以修改程式碼試玩
DEMO 7可以修改程式碼試玩

挑戰任務

Task 1

寫一個 Regex 找出所有 4 位數字(恰好 4 位)

Task 2

找出所有包含一個或多個英文字母的單字

Task 3

找出 09 開頭的手機號碼(09 + 8 個數字)

BackNext Lesson →