RunToolz iconRunToolz
Welcome to RunToolz!
正規表達式程式設計速查表

每個開發者都該收藏的 20 個正規表達式

最實用的正規表達式速查表——信箱、URL、電話號碼、IP、日期等。複製貼上即可使用。

RunToolz Team2026年2月2日6 min read

正規表達式是那種運作時感覺像魔法、不運作時讓人抓狂的工具。我收集實用模式已經好幾年了,這 20 個是我反覆使用的。

收藏這個頁面。你會回來的。

你會忘記的基礎

在看模式之前,快速複習容易混淆的部分:

  • . 比對任意字元(除換行)
  • * 表示零個或多個,+ 表示一個或多個,? 表示零個或一個
  • \d 是數字,\w 是字詞字元,\s 是空白
  • ^ 是字串開頭,$ 是字串結尾
  • () 分組,[] 定義字元類別,{} 設定數量

20 個模式

1. 信箱地址

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

涵蓋大多數真實信箱。不完全符合 RFC 5322(幾乎沒有什麼完全符合),但處理 99% 的有效地址。

2. URL(HTTP/HTTPS)

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

比對帶路徑和查詢字串的 HTTP 和 HTTPS URL。

3. 電話號碼(國際)

^\+?[1-9]\d{1,14}$

E.164 格式——國際通用。台灣手機號:^09\d{8}$

4. IPv4 位址

^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$

驗證每個八位元組在 0-255 之間。更簡單的模式會接受像 999.999.999.999 這樣的無效位址。

5. IPv6 位址

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

基本的完整格式 IPv6。不涵蓋縮寫表示法(::),但處理最常見的格式。

6. 日期(YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

ISO 8601 日期格式。驗證月和日的範圍,但不檢查像 2 月 31 日這樣的不可能日期。

7. 時間(HH:MM,24 小時制)

^([01]\d|2[0-3]):([0-5]\d)$

24 小時格式,00:00 到 23:59。

8. 十六進位色碼

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

比對 3 位和 6 位十六進位顏色:#fff#1a2b3c

9. 強密碼

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

至少 8 個字元,包含大寫、小寫、數字和特殊字元。根據需要調整最小長度和允許的字元。

10. 使用者名稱

^[a-zA-Z0-9_-]{3,20}$

英數字加底線和連字號,3-20 個字元。

想親自試試嗎?測試這些模式

11. HTML 標籤

<\/?[\w\s]*>|<.+[\W]>

比對開始和結束 HTML 標籤。不要用正規表達式來解析 HTML——用專門的解析器。但快速搜尋時可以用。

12. 去除空白

^\s+|\s+$

比對首尾空白。清理作業時很有用。

13. 重複詞

\b(\w+)\s+\1\b

捕捉重複的詞,如 "the the" 或 "is is"。校對文字時很好用。

14. 副檔名

\.([a-zA-Z0-9]+)$

擷取副檔名。分組 1 給出不帶點的副檔名。

15. URL 友善字串(slug)

^[a-z0-9]+(?:-[a-z0-9]+)*$

驗證 URL slug:小寫字母、數字和連字號。不允許連續連字號,不以連字號開始或結束。

16. 信用卡號(基礎)

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$

偵測 Visa、MasterCard 和 American Express 模式。僅做格式驗證——實際驗證請始終使用付款處理器。

17. UUID v4

^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

驗證帶正確版本和變體位元的 UUID 版本 4 格式。

18. JSON 字串值

"(?:[^"\\]|\\.)*"

比對正確跳脫的 JSON 字串值,正確處理反斜線跳脫。

19. CSS 屬性

([a-z-]+)\s*:\s*([^;]+);

擷取 CSS 屬性-值配對。分組 1 是屬性名,分組 2 是值。

20. Markdown 連結

\[([^\]]+)\]\(([^)]+)\)

比對 [文字](url) 連結。分組 1 是連結文字,分組 2 是 URL。

使用正規表達式的建議

從簡單開始逐步建構。 不要試圖一次寫出完美的模式。從最簡單的可用版本開始,然後新增邊界情況處理。

使用測試工具。 部署前一定要用真實資料測試你的模式。邊界情況會讓你驚訝。

加註解。 大多數正規表達式引擎支援詳細模式,可以新增註解和空白來提高可讀性。

知道什麼時候不用正規表達式。 解析 HTML、驗證複雜日期或處理深度巢狀結構——這些用專門的解析器。

你還可以用 文字比對 驗證正規表達式替換是否產生了正確的輸出,或用 字元計數 檢查比對字串的長度。


正規表達式是一項隨練習進步的技能。你不需要記住每條語法規則——只需要知道足夠多來閱讀模式並根據需要修改它們。把這份速查表放在手邊,你就能少花時間在 Stack Overflow 上,多花時間在實際開發上。