* 您的內容不會傳送至伺服器。所有計算皆在瀏覽器中直接執行
輸入正則表達式開始使用

什麼是正則表達式測試器?

正則表達式測試器是一個互動式工具,可讓您即時建構和測試正則表達式模式。

輸入時,匹配的內容會在測試文本中直接高亮顯示,詳細的匹配列表會顯示每個匹配的位置、捕獲組和長度。

此工具完全在瀏覽器中執行——任何資料都不會發送到伺服器。

主要功能

  • 即時匹配高亮 — 在測試文本中以交替顏色直觀顯示匹配結果。
  • 捕獲組檢視 — 檢視每個匹配的命名和編號捕獲組。
  • 替換預覽 — 測試基於正則的查找和替換,支援 $1、$& 和 '$<name>' 替換標記。
  • 模式解析 — 對正則表達式進行逐詞分解,顯示每個部分的含義(例如 \d+ → "一個或多個數字")。
  • 災難性回溯保護 — 匹配在背景執行緒中執行並設置超時,避免不良模式導致頁面凍結。
  • 預設庫 — 快速使用常用模式,包括郵箱、URL、IP、電話、密碼等。

常見用例

  • 學習正則 — 查看每個標記如何參與匹配,並透過範例文本驗證您的理解。
  • 除錯 — 貼上現有正則表達式並對實際資料進行測試,驗證其匹配是否符合預期。
  • 資料提取 — 使用捕獲組從日誌檔案、CSV 或結構化文本中提取特定部分。
  • 查找替換 — 在程式碼中應用之前預覽複雜的文本轉換。
  • 驗證 — 針對邊界情況測試郵箱、電話、URL 等驗證模式。

速查表

符號含義範例
字元類
\d任意數字 (0-9)123 → matches 1,2,3
\w任意單詞字元 (a-z, A-Z, 0-9, _)a1_ → matches a,1,_
\s任意空白字元(空格、Tab、換行)"a b" → space match
[...]自訂字元類[aeiou] → vowels
[^...]否定字元類[^0-9] → non-digits
錨點和邊界
^字串開頭"^hello" → at start
$字串結尾"end$" → at end
\b單詞邊界"\bword\b" → word
\B非單詞邊界"\Bing\B" → inside
量詞
*零個或多個a* → "", a, aa, aaa
+一個或多個a+ → a, aa, aaa
?零個或一個a? → "", a
{n}恰好 n 個a{3} → aaa
{n,}至少 n 個a{2,} → aa, aaa
{n,m}n 到 m 個a{2,4} → aa, aaa, aaaa
*?, +?, ??惰性模式(盡可能少匹配)"<.*?>" → shortest match
分組和環視
(...)捕獲組(abc)+ → capture abc
(?:...)非捕獲組(?:abc)+ → group w/o capture
(?<name>...)命名捕獲組"(?<year>\d{4})"
(?=...)正向先行q(?=u) → q followed by u
(?!...)負向先行q(?!u) → q not followed by u
(?<=...)正向後顧"(?<=@)\w+"
(?<!...)負向後顧"(?<!@)\w+"
跳脫
\n換行符"line\n" → newline
\tTab"col\t" → tab
\\字面量反斜線"c:\\path"
\.字面量點號"end\." → literal dot
\/字面量斜線"path\/to\/file"

局限性

  • 僅限 JavaScript 正則 — 此工具使用瀏覽器內建的正則引擎。PCRE、Python 等正則風格的匹配行為可能有所不同。
  • 舊瀏覽器不支援後顧 — 後顧斷言 (?<=...) 需要 ES2018+。Safari 在 2023 年才新增支援。
  • 匹配上限 1,000 — 為保持 UI 響應性,僅渲染前 1,000 個匹配結果。
  • 捕獲組不在文本中高亮 — 捕獲組顯示在匹配列表中,而非內聯高亮。