開發者工具2026-05-10

正則表達式測試器:網上建立、測試同除錯正則表達式

正則表達式係一種模式比對語言,可以用任何手動字串操作都做唔到嘅精確度去搵、提取、驗證同取代文字。但寫 regex 好難 — 一個放錯位嘅量詞就可以將精確嘅模式變成效能炸彈或者靜默嘅唔匹配。我哋嘅 regex 測試器俾你寫個模式、貼上或輸入測試資料,同埋喺你打字嗰陣即時睇到 highlight 咗嘅比對結果。佢預設支援 JavaScript(ECMAScript 2024)語法,仲可以切換做 PCRE2(PHP)、Python 3、Java 同 .NET 風格 — 每種風格對 lookbehind、Unicode 屬性跳脫同回溯控制嘅處理都唔同。呢個工具用唔同顏色視覺化擷取群組、標記第一個比對嘅準確字元位置,同埋喺你個模式有災難性回溯風險嗰陣警告你(例如,(a+)+b 比對 "aaaaaaaaac" — 喺 25 個字元嗰陣可以 freeze 個 thread,去到 30 個字元所需時間可能仲長過宇宙年齡)。無論你係為緊表單寫驗證規則、解析日誌檔案,定係透過尋找取代重構程式碼,互動式測試你嘅 regex 可以慳時間同防止好大鑊嘅錯誤。

manage_search

正則表達式測試器

免費 · 無需註冊

免費試用此工具 →open_in_new

分步指南

1

寫你嘅 Regex 模式

喺模式欄位度輸入你嘅正則表達式。工具接受字面 regex(喺正斜線之間,例如 /pattern/g)或者齋模式字串。快速參考側欄列出常用標記 — 字元類別(d、w、s)、量詞(*、+、?、{n,m})、錨點(^、$、)同群組(擷取、非擷取、命名)。Mouse over 任何標記會出 tooltip 顯示佢嘅意思同例子。

2

貼上測試資料同睇比對

將你嘅測試文字 — 例子 API 回應、日誌輸出、用戶輸入或者程式碼 — 貼落測試資料區。當你輸入或修改模式嗰陣,比對會即時 highlight 顯示。每個擷取群組用唔同顏色編碼:群組 0(完整比對)藍色、群組 1 綠色、群組 2 橙色,命名群組就喺圖例度顯示佢個名。比對位置(開始/結束索引)喺下面顯示。

3

切換旗標同 Regex 風格

用 checkbox 啟用旗標:g(全域 — 搵晒所有比對,唔止第一個)、i(唔分大小寫)、m(多行 — ^ 同 $ 喺行邊界比對,唔止係成個字串嘅開始/結束)、s(dotall — . 比對換行字元)、u(Unicode — 啟用 \u{...} 同 Unicode 屬性跳脫)同 y(黏著)。透過下拉式選單切換 regex 引擎風格,確保你個模式喺目標環境度正確運作。

使用技巧與最佳實踐

check_circle

最常見嘅 regex 效能殺手係災難性回溯 — 當一個有巢狀量詞嘅模式(例如 (a+)+b)喺失敗之前試晒所有可能嘅方式去分割輸入。對於 25 個 "a" 字元嘅輸入,咁樣可以需要超過 3300 萬次回溯步驟。透過喺引擎支援嗰陣用所有格量詞(a++b)或者原子群組((?>a+)b)嚟修復,或者重寫個模式令佢更具體。

check_circle

懶惰量詞(*?、+?、??、{n,m}?)比對盡量少嘅字元,而唔係盡量多。佢哋喺比對分隔內容嗰陣好緊要 — 例如,/<p>.*?</p>/ 正確咁單獨比對每個段落標籤 pair,而唔係由第一個 <p> 比對到最後一個 </p>(貪婪嘅 .* 會咁做)。

check_circle

前瞻同後顧斷言俾你根據文字前後嘅內容嚟比對文字,而唔使包埋嗰啲上下文喺比對入面。正向前瞻:/foo(?=bar)/ 淨係喺 "foo" 後面跟住 "bar" 嗰陣先比對 "foo"。負向後顧:/(?<!\\)$/ 淨係喺美元符號前面冇反斜線嗰陣先比對佢。JavaScript 喺 ES2018 加咗後顧支援。

check_circle

命名擷取群組令 regex 大大增加可讀性。唔好用有數字群組引用嘅 /(d{4})-(d{2})-(d{2})/,改用 /(?<year>d{4})-(?<month>d{2})-(?<day>d{2})/ 同埋按名引用群組:match.groups.year。Python、JavaScript、PCRE 同 .NET 都支援呢個語法。

check_circle

Unicode 屬性跳脫(p{...})俾你比對成個字元類別,而唔使逐個字元列出嚟。例如,p{Script=Han} 比對任何中文字元,p{Emoji} 比對 emoji,p{Lu} 比對任何文字系統嘅大寫字母。呢個比嘗試手動列出 Unicode 範圍穩健得多。

check_circle

對於電郵驗證,根據 RFC 5322 唯一正確嘅 regex 超過 200 個字元長,仲要唔完美。對於實際表單驗證,用簡單模式如 /^[^s@]+@[^s@]+.[^s@]+$/ 做第一關,然後寄封確認電郵。唔好試圖用 regex 驗證電郵規範嘅每個 edge case — regex 唔係做呢樣嘢嘅啱工具。

check_circle

旗標會明顯改變 regex 行為。g 旗標執行全域搜尋(多個比對)。冇咗佢,只會回傳第一個比對。u 旗標啟用完整嘅 Unicode 支援 — 冇咗佢,/w{2,}/ 呢類模式可能對非 ASCII 字元有奇怪行為。對於現代 JavaScript regex,永遠 set u 旗標,除非你好肯定唔使 Unicode。

check_circle

針對 edge case 測試你個 regex,唔止係 happy path 輸入。空字串、得特殊字元嘅字串、最長嘅字串同 Unicode 文字全部都可能暴露缺陷。regex 測試器俾你儲存測試案例集,一次過對住一個模式行晒佢哋。

常見問題解答

雖然核心 regex 語法(d、+、*、^、$、群組)係通用嘅,但每個引擎都有獨特功能同怪癖。PCRE2(PHP 同好多 CLI 工具用)支援遞迴模式、所有格量詞同 callout。JavaScript(ECMAScript)冇所有格量詞同 Q...E 引用,但支援後顧(ES2018)。Python 支援用 (?P<name>...) 命名嘅群組 — 同 JavaScript 嘅 (?<name>...) 唔同。Java 要喺字串字面度雙重轉義反斜線(d 喺程式碼度變成 \\d)。.NET 支援用嚟比對巢狀結構嘅平衡群組。

Regex 係開發者工具箱入面最強大嘅工具之一 — 亦都係最易出錯嘅工具之一。互動式測試可以捉到靜默嘅唔匹配、回溯炸彈同跨引擎唔相容問題,喺佢哋去到生產環境之前。我哋嘅免費 regex 測試器支援四種主要引擎風格,仲要全部喺你個瀏覽器度執行。即刻開始測試你嘅模式。

免費試用此工具 →open_in_new