跳至主要內容
SPCXTools

Regex 測試工具

輸入正規表達式,即時查看所有比對結果、擷取群組與取代預覽。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 Regex 測試工具

  1. 1在 Pattern 欄位輸入您的正規表達式 — 無須輸入斜線。
  2. 2選擇修飾符 (Flags),例如 g (全域比對)、i (忽略大小寫) 或 m (多行模式)。
  3. 3將要搜尋的文字貼入 Test string。符合的比對結果會即時醒目提示並統計數量。
  4. 4查看表格以了解每個比對結果的位置與擷取群組。
  5. 5勾選 Replace 並輸入取代字串 (例如 $2: $1),即可預覽 String.replace 的執行結果。

即時測試正規表達式

正規表達式功能強大,但以難以閱讀聞名。這款正規表達式測試工具能在您輸入時,即時顯示樣式 (pattern) 的執行結果:每個符合的字串都會在文字中標示出來、計算數量,並列出其位置與擷取群組 (capture groups)。替換預覽功能可讓您在將程式碼套用前,先查看搜尋與替換的結果。所有運算皆在您的瀏覽器本機執行,並透過背景執行緒處理,保護網頁免受失控樣式影響而當機。

功能特色

  • 即時標示測試字串中所有符合的結果。
  • 旗標切換:支援切換 g、i、m、s 與 u 旗標,並顯示完整的 /pattern/flags 語法。
  • 比對結果表:包含索引位置、編號擷取群組與命名群組。
  • 替換預覽:支援 $1、$<name>、$& 等替換樣式。
  • 清晰的錯誤訊息:提示無效的語法,並具備一秒安全逾時機制,防止災難性回溯 (catastrophic backtracking)。

實際應用

驗證輸入資料。 在將正規表達式加入表單前,先透過有效與無效的樣本清單,建立並測試郵遞區號、產品代碼或使用者名稱的樣式。

擷取資料。 從日誌與文件中擷取電子郵件地址、URL、日期或 ID。擷取群組可讓您將每個比對結果拆分成多個部分,例如使用者與網域。

搜尋與替換。 將日期格式從 MM/DD/YYYY 重新格式化為 YYYY-MM-DD、重新命名變數,或是清理匯出的資料。在此處預覽替換結果後,再將相同的樣式套用至您的編輯器或腳本中。

學習正規表達式。 實驗量詞 (quantifiers)、字元類別 (character classes) 與錨點 (anchors),並即時查看效果。

快速參考

語法 說明
. 除了換行符號以外的任何字元(若啟用 s 模式則為任何字元)
\d \w \s 數字、單詞字元、空白字元
[abc] [^abc] 符合列出的任一字元 / 不符合列出的任一字元
* + ? 0 個或多個、1 個或多個、0 或 1 個
{2,5} 出現 2 到 5 次
^ $ 文字的開頭與結尾(若啟用 m 模式則為每行的開頭與結尾)
(…) (?<name>…) 擷取群組、命名群組
(?:…) 非擷取群組
(?=…) (?!…) 正向預查、負向預查
\b 單詞邊界

量詞預設為貪婪模式;加上 ?(例如 .*?)可將其改為懶惰模式。若要在處理後清理清單,可以試試刪除重複行,或者使用文字差異比對來比較前後的差異。

常見問題

這個測試工具使用哪種正規表示式引擎?
它使用您瀏覽器的 JavaScript (ECMAScript) 正規表示式引擎,與 Node.js、Deno 及前端程式碼所使用的相同。大部分語法與 PCRE、Python 及 Java 共通,但部分功能有所差異,例如不支援佔有型量詞 (possessive quantifiers),而現代瀏覽器則支援向後斷言 (lookbehind)。
為什麼我的正規表示式只找到一個匹配項目?
如果沒有 g (全域) 旗標,JavaScript 會在找到第一個匹配項目後停止。開啟 g 即可尋找文字中的所有匹配項目。
我該如何在取代時引用擷取群組?
編號群組請使用 $1、$2 等,命名群組 (例如 (?<year>\d{4})) 請使用 $<name>,整個匹配項目請使用 $&,而字面上的錢字號請使用 $$。
如果我的正規表示式執行非常慢會怎樣?
某些模式 (例如 (a+)+$) 在特定輸入下可能會花費指數級的時間 (即「災難性回溯」)。本測試工具會在背景執行緒中執行您的表示式,並在 1 秒後強制停止,因此網頁絕對不會失去回應。請改寫模式以避免巢狀量詞。
s 和 u 旗標有什麼作用?
s (dotAll) 讓 . 也能匹配換行字元。u (unicode) 會將模式與文字視為 Unicode 碼位 (code points),這在處理表情符號 (emoji) 以及像是 \p{L} (任何字母) 這種 \p{…} 屬性跳脫字元時是必須的。
我的文字會被上傳嗎?
不會。匹配與取代作業完全在您的瀏覽器中本機執行。