Regex 解析測試器

即時高亮匹配結果,解釋正規表示式語意,並產生範例字串

/ /
0 個匹配
匹配結果將在此處高亮顯示。
暫無匹配。
  • 模式解釋將在此處顯示。

                

如何使用

第 1 步

輸入模式

輸入正則表達式並選擇相關標誌。

第 2 步

測試文本

即時查看高亮的匹配結果和捕獲組。

第 3 步

解釋與生成

查看模式解釋並生成範例字串。

常見問題

正則表達式測試器是否支援 g、i、m、s、u 等標誌?

可以。您可以在測試器中切換 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 永遠是整個匹配。

什麼時候需要 u(Unicode)標誌?

只要模式或文本涉及非 ASCII 字元,就該加上 u:它會讓 \w 與 \d 遵循 Unicode 規則、啟用 \p{L} 與 \p{Script=Arabic} 等屬性逸出,並把 emoji 視為單一字元。若沒有 u,UTF-16 代理對(surrogate pair)可能被 . 的匹配從中切開。

^、$ 以及 m 和 s 標誌如何搭配運作?

預設情況下,^ 與 $ 錨定整個字串,而 . 會跳過換行符。m(多行)標誌會讓 ^ 與 $ 改為在每一行的邊界處匹配,s(dotAll)標誌則讓 . 能跨越換行。解析日誌時常見的做法是兩個標誌一起使用:/error.*timeout/gms。

這個測試器使用哪一種正則表達式方言?

它執行的是您瀏覽器中的 JavaScript 引擎,因此遵循 ECMAScript(ECMA-262)的正則表達式語義——與正式環境 JS 中 String.prototype.match 所用的引擎相同。請留意它與 PCRE 或 Python 的差異:JavaScript 不支援 \K 或遞迴,而後行斷言(lookbehind)要到 ES2018 才問世。為 Perl 或 PCRE 撰寫的模式可能需要小幅調整。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}