正規表示式線上測試
寫下正規表示式,邊輸入邊看它比對到什麼。
輸入不含斜線的模式,或貼上完整的 /pattern/flags。
貼上文字、開啟檔案,或將檔案拖曳至此
速查表
- \d
- 一個數字,0–9
- \w
- 字母、數字或底線
- \s
- 空格、Tab 或換行
- .
- 換行以外的任何字元
- ^
- 文字開頭(加上 m 時為行首)
- $
- 文字結尾(加上 m 時為行尾)
- *
- 前一項,0 次或更多次
- +
- 前一項,1 次或更多次
- ?
- 前一項,可有可無
- {n,m}
- 前一項,n 到 m 次
- [abc]
- a、b 或 c 其中之一
- (…)
- 群組,擷取為 $1、$2、…
- (?<name>…)
- 具名群組,擷取為 $<name>
- a|b
- 左邊或右邊
下一步: 文字比對 · JSON 格式化工具
如何使用 正規表示式測試
輸入模式
輸入不含斜線的正規表示式,或貼上完整的 /pattern/flags,並勾選需要的旗標。
加入測試文字
貼上文字或開啟檔案。每個相符項目都會醒目標示,下方列出其位置與群組。
取代或複製
勾選「取代」,用 $1 或 $<name> 試試取代效果,再複製結果或正規表示式本身。
為什麼選擇 Utils365
群組一目了然
每個相符項目都會顯示編號群組與具名群組,方便確認 $1 或 $<year> 會取得什麼。
不怕失控的模式
比對在背景執行,並有一秒的時間上限,無止盡回溯的模式也無法讓頁面當掉。
與程式碼相同的引擎
使用瀏覽器的 JavaScript 正規表示式引擎,結果與 Node.js 和瀏覽器完全一致。
注重隱私
您的模式和文字都留在瀏覽器中。不會上傳任何內容,記錄檔和客戶資料都能放心測試。
常見問題
這裡使用哪種正規表示式語法?
JavaScript(ECMAScript),與瀏覽器和 Node.js 相同。多數模式在其他語言中效果一樣,但後行斷言、具名群組和部分跳脫字元在較舊的引擎中會有差異。
g、i、m、s、u 和 y 旗標有什麼作用?
g 找出所有相符項目,i 忽略大小寫,m 讓 ^ 和 $ 在每一行比對,s 讓 . 也能比對換行,u 啟用完整的 Unicode 支援,y 讓每次比對從上一次結束的位置開始。
如何在取代中使用擷取群組?
編號群組寫成 $1、$2 等,具名群組寫成 $<name>,整個相符內容寫成 $&。要插入真正的錢字號,請寫 $$。
為什麼顯示我的模式耗時太久?
有些模式,例如對長字串使用 (a+)+,在放棄前會嘗試極大量的比對方式。這稱為災難性回溯。將巢狀重複寫得更具體即可解決。
為什麼只看到一個相符項目?
沒有 g 旗標時,正規表示式會在第一個相符處停止。勾選「全域 (g)」即可找出全部。
如何比對字面上的點或方括號?
在前面加上反斜線:\. 比對點,\[ 比對方括號。其他特殊字元如 * + ? ( ) { } | ^ 和 $ 也一樣。