Utils365

正規表示式線上測試

寫下正規表示式,邊輸入邊看它比對到什麼。

輸入不含斜線的模式,或貼上完整的 /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 格式化工具

回報此工具的問題

如何使用 正規表示式測試

  1. 輸入模式

    輸入不含斜線的正規表示式,或貼上完整的 /pattern/flags,並勾選需要的旗標。

  2. 加入測試文字

    貼上文字或開啟檔案。每個相符項目都會醒目標示,下方列出其位置與群組。

  3. 取代或複製

    勾選「取代」,用 $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)」即可找出全部。

如何比對字面上的點或方括號?

在前面加上反斜線:\. 比對點,\[ 比對方括號。其他特殊字元如 * + ? ( ) { } | ^ 和 $ 也一樣。