正規表示式速查表與視覺化工具

快速掌握正規表示式符號,把一個樣式拆成通俗易懂的部分,並用你自己的文字測試。全部在瀏覽器中執行。

/
/
貼上一個正規表示式,即可看到逐段的說明。
旗標
各段
在上方輸入一個樣式,即可看到它的各個部分。

可選。輸入或貼上文字,符合的結果會隨輸入即時顯示。

速查表


. 換行以外的任意一個字元 範例: a.c
\d 一個數字 (0-9) 範例: \d+
\D 非數字的任意字元 範例: \D+
\w 一個單字字元 (a-z, A-Z, 0-9, _) 範例: \w+
\W 非單字字元的任意字元 範例: \W+
\s 一個空白字元 範例: \s+
\S 非空白的任意字元 範例: \S+
^ 文字開頭 範例: ^hello
$ 文字結尾 範例: world$
\b 一個單字邊界 範例: \bword\b
\B 不是單字邊界的位置 範例: \Bword\B
[abc] 字元集合 範例: [abc]+
[^abc] 取反的字元集合 範例: [^abc]+
[a-z] 字元集合 範例: [a-z0-9]+
(abc) 擷取群組 範例: (abc)
(?:abc) 非擷取群組 範例: (?:abc)+
(?<n>) 具名群組 範例: (?<year>\d{4})
\1 反向參照 範例: (\w)\1
a|b 擇一 範例: cat|dog
? 可選(0 或 1) 範例: colou?r
* 重複 0 次或以上 範例: a*
+ 重複 1 次或以上 範例: a+
{m,n} 重複指定的次數 範例: a{2,4}
+? 同樣的意思,但盡可能短 範例: <.+?>
(?=) 僅當後面跟著 範例: foo(?=bar)
(?!) 僅當後面不跟著 範例: foo(?!bar)
(?<=) 僅當前面是 範例: (?<=\$)\d+
(?<!) 僅當前面不是 範例: (?<!\$)\d+
\. 把下一個字元當作字面字元 範例: 3\.14
\n 一個換行 範例: line\n
\t 一個定位字元 範例: \tindented

常用驗證樣式


用途樣式說明符合範例
電子郵件位址^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$驗證電子郵件位址的常見形式。user@example.com
電話號碼(美國)^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$比對十位號碼,帶或不帶連字號、空格、括號皆可。123-456-7890
郵遞區號(美國)^\d{5}(-\d{4})?$比對五位與九位的郵遞區號。90210-1234
日期 (YYYY-MM-DD)^\d{4}-\d{2}-\d{2}$比對簡單的純數字日期格式。2026-09-16
IP 位址 (IPv4)^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$比對 IPv4 位址的形式,但不檢查每一段是否在 0 到 255 之間。192.168.1.1

這些樣式檢查的是值的形式,而不是它是否真的存在。一個位址可以完全符合郵件樣式卻依然寄不出去,所以用它們盡早發現拼字錯誤,絕不要當作唯一的驗證。

這個工具提供什麼


一份精簡的正規表示式符號參考、一種把樣式翻成日常句子的拆解,以及一個能顯示樣式在你自己文字中比對到什麼的測試器。

什麼時候用


寫樣式時用,讀別人寫的樣式時用,向同事講解正規表示式基礎時也用。把樣式一段一段唸出來,往往就是讓人豁然開朗的那一步。

限制


拆解依循 JavaScript 的正規表示式,因為那正是瀏覽器所執行的。其他方言有所不同:PCRE、Python、Java 與 .NET 各自加了自己的語法,而 grep、sed 等 POSIX 工具使用的是更舊、更小的語法。測試器會在獨立的執行緒中執行你的樣式,幾秒後就停止,因此無限回溯的樣式無法讓頁面卡死。

如何使用速查表


搜尋一個符號,或貼上一個樣式,逐段閱讀。

  1. 瀏覽或搜尋符號清單。
  2. 貼上一個樣式,看它被拆成哪些段。
  3. 輸入範例文字,看清真正比對到什麼,再調整樣式。

常見問題


這個工具會上傳我的樣式嗎?
不會。拆解與比對都在你的瀏覽器中進行,樣式與文字都不會傳送到任何地方。

它依循哪一種正規表示式方言?
JavaScript 的方言,因為做事的正是這個引擎。這裡絕大部分的內容——字元類別、群組、量詞、錨點——在各方言中都是一樣的。

我可以在這裡測試我的樣式嗎?
可以。在測試框中輸入文字,符合處會被標示出來,並列出每一處擷取到的群組。

我的樣式為什麼被中止了?
有些樣式遇到幾乎能符合的文字時會花費指數級的時間,常見原因是量詞套量詞,例如 (a+)+b。測試器幾秒後就放棄,而不是讓頁面卡死;這次中斷本身就是一個有用的警訊:同樣的樣式會把伺服器拖垮。

Wikipedia — Regular expression
Wikipedia — PCRE
Wikipedia — Finite-state machine
Wikipedia — ReDoS
Wikipedia — Backtracking