正規表達式完全教學:從入門到精通,附常用範例大全

系統性學習正規表達式(Regular Expression),涵蓋基礎語法、進階技巧、常用模式和實際應用範例。適合前端、後端開發者和資料處理人員。

本文介紹的工具:正則表達式測試器

什麼是正規表達式?

正規表達式(Regular Expression,簡稱 Regex) 是一種用於描述字串匹配模式的工具。它可以用來搜尋、替換和驗證文字,是程式開發中不可或缺的技能。

基礎語法

字元匹配

語法 說明 範例
. 匹配任意單個字元 a.c 匹配 "abc"、"a1c"
\d 匹配數字 \d{3} 匹配 "123"
\w 匹配字母、數字、底線 \w+ 匹配 "hello_123"
\s 匹配空白字元 \s+ 匹配空格和換行

量詞

語法 說明 範例
* 0 次或多次 ab*c 匹配 "ac"、"abc"、"abbc"
+ 1 次或多次 ab+c 匹配 "abc"、"abbc"
? 0 次或 1 次 colou?r 匹配 "color"、"colour"
{n} 恰好 n 次 \d{4} 匹配 4 位數字
{n,m} n 到 m 次 \d{2,4} 匹配 2-4 位數字

錨點

語法 說明
^ 字串開頭
$ 字串結尾
\b 單字邊界

常用正規表達式範例

電子郵件驗證

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

手機號碼(台灣)

^09\d{8}$

網址驗證

^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$

IP 位址

^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

密碼強度(至少 8 位,含大小寫和數字)

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$

進階技巧

分組與捕獲

使用 () 建立捕獲組,可以提取匹配的子字串:

const match = "2024-01-15".match(/(\d{4})-(\d{2})-(\d{2})/);
// match[1] = "2024", match[2] = "01", match[3] = "15"

非捕獲組

使用 (?:) 建立不捕獲的分組:

(?:https?|ftp):\/\/

前瞻和後顧

  • 正向前瞻 (?=...):匹配後面跟著指定模式的位置
  • 負向前瞻 (?!...):匹配後面不跟著指定模式的位置

實用工具推薦

使用我們的 Regex 測試器 可以即時測試正規表達式,支援即時匹配高亮和常用模式範本,是學習和除錯 Regex 的好幫手。