Toolify

正規表示式測試器 (即時匹配、分組、替換)

輸入正則與測試文本 — 輸入時匹配即時高亮。切換 flag (g/i/m/s/u)、檢視捕獲組、預覽替換。

Flag
匹配 (4)
Hello World, this is a Regex Tester.

運作原理

Flag 的作用

g (global): 找所有匹配, 不只第一個。replace-all 必需。i (case-insensitive): /[a-z]/i 匹配大小寫。m (multiline): ^ 與 $ 在換行處匹配, 不僅串首尾。s (dotall): . 也匹配換行。u (unicode): 正確處理 0xFFFF 以上碼點 (表情、代理對中的 CJK)。

多數人從 /g/i/m 開始。/s/ 在多行文本匹配時有用。可能遇到表情或非 BMP 字元時建議 /u/ — 否則 /./ 不會把 4 位元組表情當成單字元。

捕獲組與替換

圓括號建捕獲組: /(\d{4})-(\d{2})/ 在 '2026-05' 上分別捕獲 '2026' 與 '05'。在替換中用 $1、$2 引用。命名組用 (?<name>...), 替換中用 $<name>。

常見替換技巧: $& 插入整體匹配。$1、$2 等插入捕獲組。$$ 插入字面 $。這裡的替換預覽讓你在真實文本上跑同模式前先檢查 — 比直接在生產資料上跑安全得多。

要注意的陷阱

反斜槓轉義。要匹配字面 '.', 用 '\.'。在 JavaScript 源串中是 '\\.', 但本工具中你只輸入 '\.', 因為是正則源。

災難性回溯。/(a+)+/ 這樣的模式在 'aaaa…!' 上可能永遠跑不完。如果測試似乎卡住, 你的正則可能有巢狀量詞。簡化或用佔有性/原子組 (JS 正則沒有; 用細緻設計代替)。

貪婪 vs 懶惰。/<.+>/ 在 '<a><b>' 上匹配 '<a><b>' (貪婪)。/<.+?>/ 匹配 '<a>' (懶惰)。按用例選對的。

常見問題

用哪種正則風格?

JavaScript ECMAScript 正則 (你瀏覽器實現的)。與 PHP、.NET、Python 用的 PCRE 略有不同。

為什麼 lookbehind 不工作?

在現代瀏覽器中工作 — Chrome、Firefox、Safari、Edge 自 2021 年起都支援 (?<=...) 與 (?<!...)。如果你的不行, 瀏覽器可能過舊。

'u' flag 做什麼?

啟用正確 Unicode 處理。表情如 🎉 (UTF-16 代理對) 在 /u/ 下被當成一個字元, 預設模式下被當兩個。

如何匹配製表符或換行?

\t 製表符, \n 換行, \r 回車, \s 含所有這些的任意空白。

為什麼我的替換不工作?

最常見, 你忘了 'g' flag — 沒 'g' 的替換隻換第一個匹配。切換 'g' 替換全部。

可處理超長文本?

可以, 幾 MB 內。再大瀏覽器可能變慢。避免在長輸入上跑災難模式 (巢狀量詞)。

資料會上傳嗎?

不會。模式與文本僅本地處理。

有正則速查表嗎?

搜「JavaScript regex cheat sheet」。MDN 的 RegExp 頁是權威參考。

相關工具

最後更新: