DevToolPal
繁

正規表示式測試

即時測試 JavaScript 正規表示式:標示符合結果、檢視擷取群組、預覽取代效果。

本機處理,不會上傳

選項

測試字串

0 字元 · 0 B

結果

結果會顯示在這裡

功能介紹

正規表示式測試讓你撰寫正規表示式,並在輸入的同時看到它在範例文字中究竟比對到什麼。符合的部分會直接在原文中標示,每個擷取群組都會列出值和位置;選填的取代範本則會顯示 String.replace 會產生的結果。

使用方式

  1. 把要搜尋的文字貼到 測試字串,或按 範例。
  2. 在選項面板的 正規表示式 中輸入規則,不要加上前後的斜線。
  3. 切換需要的旗標:g 找出所有符合,i 不分大小寫,m 讓 ^ 和 $ 逐行比對,s 讓 . 也能比對換行,u 啟用完整 Unicode。
  4. 查看結果:符合數量、標示後的文字,以及列出每處符合和其群組的表格。按 複製 可以複製任何值。
  5. 若要試試取代效果,請填寫 取代為,例如 $2, $1。

範例

預設規則 ([\w.+-]+)@([\w-]+(?:\.[\w-]+)+) 會找出電子郵件地址,並分別擷取使用者名稱和網域。使用取代字串 $1 at $2 時,文字 hello@example.com 會變成 hello at example.com。

快速參考

  • \d 數字、\w 單字字元、\s 空白字元、. 任意字元
  • * 零次以上、+ 一次以上、? 可有可無、{2,5} 2 到 5 次
  • [abc] 其中之一、[^abc] 都不是、a|b 二擇一
  • (...) 擷取群組、(?<name>...) 具名群組、(?:...) 不擷取的群組
  • (?=...) 前瞻、(?<=...) 後顧、\b 單字邊界

常見問題

› 這裡使用哪一種正規表示式語法?

瀏覽器內建的 JavaScript(ECMAScript)引擎,和 Node.js、Deno 以及所有瀏覽器使用的是同一套。大部分語法和 PCRE、Python、Java 相通,但不支援占有量詞和遞迴等部分功能。

› 為什麼我的規則只找到一處符合?

請開啟全域(g)旗標。沒有它的話,JavaScript 在第一處符合後就會停止。

› 取代字串中要怎麼引用群組?

編號群組用 $1、$2…,具名群組用 $<name>,整個符合內容用 $&,字面上的錢字號則寫成 $$。

› 為什麼 ^ 和 $ 不會在每一行都比對?

預設情況下,它們只比對整段文字的開頭和結尾。開啟多行(m)後,它們才會在換行處比對。

› 我的文字會被傳送到任何地方嗎?

不會。比對在你的瀏覽器中執行。非常慢的規則(災難性回溯)可能讓分頁當住,所以請避免在很長的輸入上使用 (a+)+ 這類巢狀量詞。