Regex 解析測試器
即時高亮匹配結果,解釋正規表示式語意,並產生範例字串
- 模式解釋將在此處顯示。
如何使用
輸入模式
輸入正則表達式並選擇相關標誌。
測試文本
即時查看高亮的匹配結果和捕獲組。
解釋與生成
查看模式解釋並生成範例字串。
常見問題
可以。您可以在測試器中切換 global(全域)、ignore case(忽略大小寫)、multiline(多行)、dotAll、unicode(Unicode)以及 sticky(黏性)等標誌。
解析器會逐一讀取您模式中的每個 token,並為錨點(anchor)、字元類別(class)、群組(group)與量詞(quantifier)產生淺顯易懂的說明。
可以。範例產生器會依據您目前的模式產生一個具代表性的字串,讓您快速檢查模式意圖是否符合預期。
像 .* 這類貪婪量詞會盡可能吞入最多字元,然後再回溯;其懶惰版本 .*? 則在第一處匹配就停止。以文本 say "hi" bye 為例,模式 "..*" 會擷取整行,而 ".*?" 只擷取 hi。貪婪是預設行為——在任何量詞後面加上 ? 即可讓它變成懶惰。
括號用於擷取:以 (\d{4})-(\d{2}) 匹配 2026-09-19 會得到群組 1 = 2026、群組 2 = 09;在替換模式中,$1 可重複使用擷取到的文字。像 (?<year>\d{4}) 這樣的具名群組在複雜模式中可讀性更佳。JavaScript 依左括號出現的順序為群組編號,從 1 開始——群組 0 永遠是整個匹配。
只要模式或文本涉及非 ASCII 字元,就該加上 u:它會讓 \w 與 \d 遵循 Unicode 規則、啟用 \p{L} 與 \p{Script=Arabic} 等屬性逸出,並把 emoji 視為單一字元。若沒有 u,UTF-16 代理對(surrogate pair)可能被 . 的匹配從中切開。
預設情況下,^ 與 $ 錨定整個字串,而 . 會跳過換行符。m(多行)標誌會讓 ^ 與 $ 改為在每一行的邊界處匹配,s(dotAll)標誌則讓 . 能跨越換行。解析日誌時常見的做法是兩個標誌一起使用:/error.*timeout/gms。
它執行的是您瀏覽器中的 JavaScript 引擎,因此遵循 ECMAScript(ECMA-262)的正則表達式語義——與正式環境 JS 中 String.prototype.match 所用的引擎相同。請留意它與 PCRE 或 Python 的差異:JavaScript 不支援 \K 或遞迴,而後行斷言(lookbehind)要到 ES2018 才問世。為 Perl 或 PCRE 撰寫的模式可能需要小幅調整。