正規式測試

正規式測試

即時比對、依旗標執行、列出所有捕獲群組

瀏覽器本地計算

表達式不帶兩側的 /;選擇標誌並輸入文本即可匹配。結果中的位置從 0 開始,計算超時會停止。

 
–

範例

輸入

正則表達式:(cat|dog)
標誌:g
文本:cat and dog

示例結果

#0  "cat"
  $1 = "cat"

#8  "dog"
  $1 = "dog"

位置從 0 開始。表達式輸入框不需要兩側的 / 分隔符。

技術細節與邊界

位置以 JavaScript UTF-16 碼元為單位。g 查找全部匹配,i 忽略大小寫,m 改變行首尾錨點,s 讓點號匹配換行,u 啓用 Unicode 模式。匹配在獨立 Worker 中運行並設超時,以減少複雜回溯對頁面的阻塞;最多展示 5000 條結果。

關於此工具

使用瀏覽器的 JavaScript 正則引擎測試表達式,查看匹配位置、完整匹配和捕獲組。支持 g、i、m、s、u、y 標誌,適合調試提取規則和學習零寬匹配。

適用場景

  • 寫日誌切分腳本前,驗證正規式能否覆蓋所有行。
  • 排查「幾乎能匹配」的表達式為何在某些行失敗。
  • 把命名捕獲群組挑出來看結構。

操作步驟

  1. 在“正則表達式”中輸入表達式,不帶首尾的 /。
  2. 在“標誌”中輸入 g(全局)、i(忽略大小寫)、m(多行)、s(點號匹配換行)、u(Unicode)或 y(粘連),每種標誌最多一次。
  3. 在“文本”中粘貼目標文本;修改任一項會自動重新匹配。

注意事項

本工具用 JavaScript 的 RegExp;與 PCRE / Go regexp / Java 在細節上不完全一致。

常見問題

JavaScript 正則測試g和i標誌怎麼用?
正則標誌g用於查找全部匹配,i用於忽略大小寫。例如用a匹配Aa,開啓gi可得到2處命中,只開啓g則有1處;本工具遵循JavaScript語法,遷移到其他語言前需重新驗證。
正則測試工具最多顯示多少條匹配結果?
本工具最多展示5000條正則匹配結果,並通過獨立Worker與超時控制限制阻塞。位置按UTF-16碼元計數,部分字符佔2個碼元;大輸入應分段測試,超時或截斷都不代表完整掃描已完成。
正則匹配位置為甚麼和字符數量不同?
正則匹配位置使用UTF-16碼元索引,因此可能與肉眼看到的字符數不同。基本平面字符通常佔1個碼元,補充平面字符佔2個;核對高亮位置時應使用同一索引單位,不能直接用字節偏移替代。

相關工具

正規式測試 · 即時比對、依旗標執行、列出所有捕獲群組
正規式測試 — 工具示意圖 · dayeku.com