重點摘要
- 01測試器使用您的瀏覽器的原生JavaScript RegExp引擎,因此結果與Node.js或現代瀏覽器在生產環境中產生的結果完全相符。
- 02所有六個JavaScript標誌(g、i、m、s、y、u)都單獨可用。
- 03替換範本支援$1、$2、$&和$$,用於強大的替換預覽。
- 04沒有任何內容發送到服務器——模式和測試字符串完全保留在您的瀏覽器中。
為什麼專用正則表達式測試器勝於您的IDE
正則表達式功能強大但臭名昭著的難以一眼識別。即使經驗豐富的開發人員也會遇到驚喜:吞掉換行符的點、消耗過多的貪婪量詞或差一位的捕獲組。專用測試器去除周圍的代碼,讓您一次只能對模式和輸入字符串進行迭代。
Handytool的正則表達式測試器使用瀏覽器的原生ECMAScript RegExp引擎評估模式,這意味著沒有轉換層也沒有方言不匹配。如果測試器說它匹配,您的JavaScript代碼也會匹配。切換標誌、粘貼新的樣本字符串,結果立即更新——無需運行按鈕。
如何測試正則表達式模式
整個工作流程耗時不到一分鐘。
- 01
粘貼或輸入您的模式
在模式欄位中輸入您的正則表達式。省略周圍的斜杠——標誌單獨設置。
- 02
設置您的標誌
單獨切換g、i、m、s、y和u。對於多匹配使用情況,幾乎總是需要全局標誌。
- 03
粘貼您的測試字符串
添加您想要匹配的文本。每次按鍵都會重新運行模式並突出顯示輸入中的匹配項。
- 04
檢查捕獲組
滾動匹配列表以查看每個匹配項的位置和每個編號捕獲組的值。
- 05
預覽替換
輸入使用$1、$2或$&的替換範本以即時查看替換輸出——非常適合在編寫String.replace()呼叫之前驗證它。
快速正則表達式調試檢查清單
在假設存在錯誤之前,請檢查以下內容:
- 01如果您期望多個匹配項,全局標誌是否已啟用?
- 02點應該匹配換行符嗎?如果是,則啟用s標誌。
- 03您在替換中使用編號組($1、$2)還是命名組(\k<name>)?
- 04模式是否使用Unicode逃逸(\p{…})?需要u標誌。
- 05粘性標誌(y)是否需要為每個匹配項重新設置lastIndex?
隱私設計
正則表達式測試器在您輸入時不會發出任何網絡請求。您的模式和測試字符串完全由瀏覽器的JavaScript引擎處理——它們永遠不會接觸服務器。這使得粘貼專有日誌行、內部API負載或調試時的敏感字符串是安全的。
由於沒有後端,也沒有速率限制、不需要帳戶,也沒有粘貼大小限制(除了您的瀏覽器選項卡可以處理的限制)。大多數日常模式和字符串在不到一毫秒的時間內評估。
正則表達式測試器常見問題
此測試器使用哪種正則表達式方言?
JavaScript(ECMAScript)。模式由瀏覽器的原生RegExp引擎評估,完全匹配Node.js和現代瀏覽器行為。支持後向斷言、命名組和Unicode屬性逃逸(\p{…}與u標誌)。
我的模式或測試字符串會離開頁面嗎?
不會。所有內容都在您的瀏覽器中本地運行——當您輸入模式、更改標誌或預覽替換時,不會發出任何網絡請求。
如何在替換欄位中使用捕獲組?
對編號組使用$1、$2…,對整個匹配項使用$&,使用$$插入字面美元符號。當您更改模式或範本時,預覽會實時更新。
這是否適用於Python或PCRE模式?
引擎是JavaScript,因此大多數基本模式行為相同,但不支持Python風格的(?P<name>…)命名組和佔有量詞。使用JS等效物——(?<name>…)用於命名組。
為什麼我的正則表達式不跨換行符匹配?
啟用s(dot-all)標誌,或將.替換為[\s\S]。沒有它,點匹配除換行符外的任何字符。