正則表達式測試器

使用測試文字檢查 JavaScript 正規表達式,查看匹配與擷取群組、預覽替換結果並探索常用語法。

2 個匹配

匹配標示

Contact ops@example.com or sales@example.com.
Shipped 2025-03-14 with #4338ca and 8.8.8.8.

匹配詳情

  • #1 · 字元位置 8–23ops@example.com$1: ops
  • #2 · 字元位置 27–44sales@example.com$1: sales

正則表達式測試工具是什麼?

正則表達式測試工具會用範例文字執行你的樣式,讓你在上線前看清楚每個樣式實際比對到什麼。它會標出所有比對結果、顯示擷取群組,並依照你選的旗標(全域、忽略大小寫、多行、Unicode)執行。

這是除錯「差一點就對」的樣式最快的方法:一次加一個符記、看著比對清單變化、閱讀逐符記的說明,並確認程式要讀取的群組索引。

如何測試正則表達式

  1. 在樣式欄輸入樣式,或貼上 /foo/gi 這種寫法;前後的斜線與旗標會自動判斷。
  2. 切換 g / i / m / s / u / y 旗標,目前生效的旗標會顯示在樣式旁。
  3. 把要測試的文字貼到「比對」分頁;符合的片段會即時標示,計數器會顯示找到幾筆。
  4. 用箭頭逐筆瀏覽,點一下可聚焦該筆。詳細清單會顯示範圍、擷取群組與具名群組。
  5. 切到「取代」可用 $1 代表群組、$& 代表整個比對、$<name> 代表具名群組,預覽取代結果。
  6. 打開「解說」可看到逐符記的樣式拆解,「參考」則是一份速查表,點任何符記就會插入樣式中。
  7. 需要已知可用的起點時,可以從常見樣式(例如電郵或網址)開始改。

正則表達式範例

擷取日期

樣式:(\d{4})-(\d{2})-(\d{2})
文字:shipped 2025-03-14
比對:2025-03-14
群組 1:2025  群組 2:03  群組 3:14

找出所有電郵

樣式:[\w.+-]+@[\w-]+\.[a-z]{2,}
文字:ping ops@example.com or sales@example.com
2 筆比對:ops@example.com、sales@example.com

用群組取代

樣式:(\d{4})-(\d{2})-(\d{2})
取代:$3/$2/$1
2025-03-14 變成 14/03/2025

看懂解說

樣式:^\d{3,}$
^ = 字串開頭
\d = 任何數字
{3,} = 出現三次以上
$ = 字串結尾

正則表達式測試工具與 regex101、RegExr 的比較

面向這個測試工具regex101RegExr
正則表達式引擎JavaScript / ECMAScriptPCRE2、JavaScript、Python、Go、Java、.NET、Rust、POSIXJavaScript 與 PHP/PCRE
即時標示有,打字時就標有有,即時更新
解說逐符記,並依群組縮排逐符記,另有逐步除錯器透過參考資料顯示提示
快速參考點符記即可插入點符記即可插入點符記即可插入
取代預覽內置,支援 $1 / $& / $<name>取代與管線模式取代面板
匯出比對結果可複製成 JSONJSON、JSON Lines、CSV 與純文字清單與詳細面板
是否需要帳號不需要免費編輯器,儲存工作區需 Pro只有儲存樣式才需登入
在哪裡執行完全在你的瀏覽器樣式會送到伺服器比對在瀏覽器內執行
常見問題

正則表達式測試工具常見問題

用的是哪一種正則表達式?

測試工具執行的是 JavaScript 正則表達式,也就是瀏覽器使用的引擎,因此樣式在前端程式裡的行為會完全一致。PCRE 專屬語法(例如佔有量詞)不支援。

為什麼我的樣式完全比對不到?

最常見的原因是忘了加全域或忽略大小寫旗標,或樣式裡有點號、反斜線這類特殊字元沒有跳脫。

「解說」分頁有什麼用?

它會逐符記拆解樣式並說明每一段的作用,是理解從別處複製來的樣式最快的方法。

可以在使用前先測試取代嗎?

可以。「取代」分頁會預覽結果。$1 到 $9 代表擷取群組,$& 代表整個比對,$<name> 代表具名群組。

什麼是擷取群組?

樣式裡的括號會建立編號群組,比對清單會顯示每個群組以及它擷取到的文字。

測試資料會被上傳嗎?

不會,比對在瀏覽器分頁內本機執行。

免費嗎?

免費,也不用註冊。

全部工具