* 您的內容不會傳送至伺服器。所有計算皆在瀏覽器中直接執行
輸入正則表達式開始使用
什麼是正則表達式測試器?
正則表達式測試器是一個互動式工具,可讓您即時建構和測試正則表達式模式。
輸入時,匹配的內容會在測試文本中直接高亮顯示,詳細的匹配列表會顯示每個匹配的位置、捕獲組和長度。
此工具完全在瀏覽器中執行——任何資料都不會發送到伺服器。
主要功能
- 即時匹配高亮 — 在測試文本中以交替顏色直觀顯示匹配結果。
- 捕獲組檢視 — 檢視每個匹配的命名和編號捕獲組。
- 替換預覽 — 測試基於正則的查找和替換,支援 $1、$& 和 '$<name>' 替換標記。
- 模式解析 — 對正則表達式進行逐詞分解,顯示每個部分的含義(例如 \d+ → "一個或多個數字")。
- 災難性回溯保護 — 匹配在背景執行緒中執行並設置超時,避免不良模式導致頁面凍結。
- 預設庫 — 快速使用常用模式,包括郵箱、URL、IP、電話、密碼等。
常見用例
- 學習正則 — 查看每個標記如何參與匹配,並透過範例文本驗證您的理解。
- 除錯 — 貼上現有正則表達式並對實際資料進行測試,驗證其匹配是否符合預期。
- 資料提取 — 使用捕獲組從日誌檔案、CSV 或結構化文本中提取特定部分。
- 查找替換 — 在程式碼中應用之前預覽複雜的文本轉換。
- 驗證 — 針對邊界情況測試郵箱、電話、URL 等驗證模式。
速查表
| 符號 | 含義 | 範例 |
|---|---|---|
| 字元類 | ||
| \d | 任意數字 (0-9) | 123 → matches 1,2,3 |
| \w | 任意單詞字元 (a-z, A-Z, 0-9, _) | a1_ → matches a,1,_ |
| \s | 任意空白字元(空格、Tab、換行) | "a b" → space match |
| [...] | 自訂字元類 | [aeiou] → vowels |
| [^...] | 否定字元類 | [^0-9] → non-digits |
| 錨點和邊界 | ||
| ^ | 字串開頭 | "^hello" → at start |
| $ | 字串結尾 | "end$" → at end |
| \b | 單詞邊界 | "\bword\b" → word |
| \B | 非單詞邊界 | "\Bing\B" → inside |
| 量詞 | ||
| * | 零個或多個 | a* → "", a, aa, aaa |
| + | 一個或多個 | a+ → a, aa, aaa |
| ? | 零個或一個 | a? → "", a |
| {n} | 恰好 n 個 | a{3} → aaa |
| {n,} | 至少 n 個 | a{2,} → aa, aaa |
| {n,m} | n 到 m 個 | a{2,4} → aa, aaa, aaaa |
| *?, +?, ?? | 惰性模式(盡可能少匹配) | "<.*?>" → shortest match |
| 分組和環視 | ||
| (...) | 捕獲組 | (abc)+ → capture abc |
| (?:...) | 非捕獲組 | (?:abc)+ → group w/o capture |
| (?<name>...) | 命名捕獲組 | "(?<year>\d{4})" |
| (?=...) | 正向先行 | q(?=u) → q followed by u |
| (?!...) | 負向先行 | q(?!u) → q not followed by u |
| (?<=...) | 正向後顧 | "(?<=@)\w+" |
| (?<!...) | 負向後顧 | "(?<!@)\w+" |
| 跳脫 | ||
| \n | 換行符 | "line\n" → newline |
| \t | Tab | "col\t" → tab |
| \\ | 字面量反斜線 | "c:\\path" |
| \. | 字面量點號 | "end\." → literal dot |
| \/ | 字面量斜線 | "path\/to\/file" |
局限性
- 僅限 JavaScript 正則 — 此工具使用瀏覽器內建的正則引擎。PCRE、Python 等正則風格的匹配行為可能有所不同。
- 舊瀏覽器不支援後顧 — 後顧斷言 (?<=...) 需要 ES2018+。Safari 在 2023 年才新增支援。
- 匹配上限 1,000 — 為保持 UI 響應性,僅渲染前 1,000 個匹配結果。
- 捕獲組不在文本中高亮 — 捕獲組顯示在匹配列表中,而非內聯高亮。