Development•
2026-02-19
•10 min
•alltools.one Team
regexregular-expressionsdevelopmentpatternsvalidation
Regex 速查表:每位開發者必備的模式
正規表達式在你學會模式之前,感覺就像黑魔法。一旦上手,它就會成為你在文字搜尋、驗證、資料擷取和字串操作中不可或缺的利器。
複製一個模式,貼到我們的 Regex 測試器中進行實驗,然後根據你的需求調整。
核心 Regex 語法
字元類別
| 模式 | 匹配內容 | 範例 |
|---|---|---|
. | 換行符以外的任何字元 | a.c 匹配 "abc"、"a1c" |
\d | 任何數字 (0-9) | \d{3} 匹配 "123" |
\w | 文字字元(字母、數字、底線) | \w+ 匹配 "hello_1" |
\s | 空白字元 | \s+ 匹配空格 |
[abc] | a、b 或 c 中的任一個 | [aeiou] 匹配母音 |
[^abc] | a、b、c 以外的任何字元 | [^0-9] 匹配非數字 |
[a-z] | 範圍內的任何字元 | [A-Za-z] 匹配字母 |
量詞
| 模式 | 含義 |
|---|---|
* | 零次或多次 |
+ | 一次或多次 |
? | 零次或一次 |
{n} | 恰好 n 次 |
{n,m} | n 到 m 次之間 |
錨點與群組
| 模式 | 含義 |
|---|---|
^ | 字串開頭 |
$ | 字串結尾 |
\b | 字邊界 |
(abc) | 擷取群組 |
(?:abc) | 非擷取群組 |
a|b | 交替(或) |
(?=abc) | 正向前瞻 |
實用模式
電子郵件驗證
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
URL 比對
https?:\/\/[\w.-]+(?:\.[a-zA-Z]{2,})(?:\/[\w./?%&=-]*)?
密碼強度
至少 8 個字元,包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$
若要生成強密碼,請使用我們的密碼產生器。
十六進位色碼
^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
使用我們的色彩轉換器在各種色彩格式之間轉換。
UUID 驗證
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
使用我們的 UUID 產生器生成有效的 UUID。
Regex 效能建議
- 越精確越好 —
[a-zA-Z]比.更快 - 避免災難性回溯 — 巢狀量詞如
(a+)+會導致指數級時間複雜度 - 不需要擷取值時使用非擷取群組
- 為模式加上錨點 —
^pattern$比未錨定的搜尋更快 - 用邊緣案例測試 — 部署前先在我們的 Regex 測試器中測試
常見問題
* 和 + 有什麼不同?
* 匹配零次或多次出現,+ 要求至少一次。所以 ab*c 可以匹配 "ac",但 ab+c 不行。
如何讓 regex 不區分大小寫?
使用 i 旗標:JavaScript 中為 /pattern/i,Python 中為 re.IGNORECASE。
相關資源
- Regex 電子郵件驗證 — 可用於正式環境的模式
- Regex 測試工具 — 即時測試和除錯模式
- 密碼產生器 — 生成符合 regex 規則的密碼
- UUID 產生器 — 生成有效的 UUID