功能介紹
正規表示式測試讓你撰寫正規表示式,並在輸入的同時看到它在範例文字中究竟比對到什麼。符合的部分會直接在原文中標示,每個擷取群組都會列出值和位置;選填的取代範本則會顯示 String.replace 會產生的結果。
使用方式
- 把要搜尋的文字貼到 測試字串,或按 範例。
- 在選項面板的 正規表示式 中輸入規則,不要加上前後的斜線。
- 切換需要的旗標:g 找出所有符合,i 不分大小寫,m 讓
^和$逐行比對,s 讓.也能比對換行,u 啟用完整 Unicode。 - 查看結果:符合數量、標示後的文字,以及列出每處符合和其群組的表格。按 複製 可以複製任何值。
- 若要試試取代效果,請填寫 取代為,例如
$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+)+ 這類巢狀量詞。