正規表示式測試
即時比對與擷取群組
測試 JavaScript 正規表示式,支援即時比對醒目提示、擷取群組以及 g、i、m 旗標控制。
此轉換僅在您的瀏覽器中執行,不會上傳任何內容。
旗標
- 相符—
- 旗標g
- 測試字串0
測試字串
輸出
輸出...
這個工具是什麼?
此工具在瀏覽器中編譯 JavaScript 正規表示式,對測試字串顯示即時比對醒目提示、相符數與擷取群組。無需 /…/ 定界符,可切換 g、i、m。
行為遵循瀏覽器 ECMAScript RegExp,與 PCRE、Python、Java、.NET、RE2 可能不同。適合在寫入業務程式碼前驗證校驗、日誌擷取與檔名規則。
常見用途
- 除錯表單校驗為何通過或拒絕某字串
- 從短日誌中用擷取群組提取 ID 或 key=value
- 在同一文字上對比貪婪
.*與惰性.*?,以及多行^/$
如何使用
- 輸入不含
/…/的模式(如\d+或(\w+)=(\S+))。 - 切換
g(全部相符)、i(忽略大小寫)、m(依行^/$)。 - 貼上測試字串;相符會醒目提示,有擷取群組時列在下方。
- Sample 載入多行 key=value 範例;Copy 複製相符/擷取摘要;Clear 清空。
範例
| 模式 / 旗標 | 測試字串 | 結果 |
|---|---|---|
\d+ · g | Order 123 and 456 | 兩個相符:123、456 |
user-(\d+) | user-42 | 相符 user-42;擷取 42 |
^id=.*$ · m | user=a / id=42(兩行) | 僅相符 id=42 行(m 啟用行首尾) |
<(.+)> vs <(.+?)> · g | <a>x</a><b>y</b> | 貪婪跨度較寬;惰性較短(對比邊緣) |
[(非法) | 任意 | Invalid regex 錯誤 |
實務上常見陷阱
- 引擎差異: 面向 Python/
re或 PCRE 的模式在 JS 中可能失敗或表現不同。 - 預設貪婪:
.*會越過你不想跨的邊界——改用惰性量詞或更緊的字元類。 - ReDoS / 長輸入: 巢狀量詞加大段貼上可能卡住分頁。除錯時請用短樣例。
參考資料
最後審閱: 2026-07-27
常見問題
- 使用哪種正規表示式引擎?
- 瀏覽器的 JavaScript RegExp。lookbehind、Unicode 屬性與回溯遵循 ECMAScript,與 PCRE、Python、Java、.NET、RE2 可能不同。
- g、i、m 旗標有什麼作用?
- g(全域)找全部相符;關閉時只顯示第一個。i 忽略大小寫。m 讓 ^/$ 比對行首/行尾。
- 為什麼貪婪模式吃掉太多內容?
- .*、.+ 預設最長相符。需要最短相符時用 .*?、.+?(惰性),或收緊字元類以免越過邊界。
- 病態模式會卡住分頁嗎?
- 會。長文字上的巢狀量詞可能引發 ReDoS 式回溯。除錯時請用短樣例。