正規表達式 測試器
在瀏覽器中即時測試和除錯正規表達式。高亮匹配項、查看捕獲群組、使用替換模式——免費且私密。
在瀏覽器中即時測試和除錯正規表達式。高亮匹配項、查看捕獲群組、使用替換模式——免費且私密。
正規表示式是一種用於匹配文字模式的特定於領域的語言。自 1968 年以來,它們一直是計算的一部分,現在已內建在每種現代程式語言、文字編輯器和命令列搜尋工具中。語法簡潔但容易出錯:微小的變化會產生細微不同的配對行為,複雜的表達式很快就會變得不可讀。在您編輯模式時即時顯示符合的測試程式是開發和驗證正規表示式的最有效方法。
此測試器使用 JavaScript 正規表示式引擎在您的瀏覽器中運行(如果應用程式在瀏覽器中運行,則與您的應用程式使用的引擎相同)。模式和測試文字反應式更新:每次變更都會重新執行匹配。反白顯示匹配組,列出捕獲的組,並公開標誌(不區分大小寫、多行、全局)以進行測試。
正規表示式語法在引擎之間略有不同。 JavaScript 遵循 ECMAScript 規範; Python、PCRE(PHP 和許多其他語言使用)、Java 和 Go 都有自己的方言,這些方言具有重疊但不完全相同的功能。這裡開發的模式使用 ECMAScript 語法;跨引擎可移植性需要檢查每個目標的文件。
眾所周知,正規表示式錯誤在部署後很難調試。看起來合理的模式可能比預期匹配更多或更少,在邊緣情況下失敗,或者在某些輸入上出現災難性的回溯。針對代表性輸入以互動方式測試模式可以在程式碼審查和生產之前捕獲問題。
模式也受益於文件。在應該匹配的輸入和不應該匹配的輸入旁邊顯示正規表示式可以使意圖明確。未來的維護者(包括六個月後的你自己)更欣賞記錄下來的測試案例,而不是聰明的俏皮話。
輸入模式,輸入測試輸入,查看即時反白顯示的匹配項。
JavaScript 正規表示式遵循 ECMAScript 規範。主要功能:字元類別 ([abc]、[^abc])、量詞 (*、+、?、{n,m})、交替 (|)、分組 ((...))、捕獲和非捕獲組、前向和後向(現代引擎)、反向引用、命名組、Unicode 屬性轉義(帶有 u 屬性標誌)和標準轉義序列集。
與 PCRE 和 Python 的重要區別:JavaScript 中最近才支援lookbehind(2018+);命名組使用 (?<name>...) 語法;某些 Unicode 轉義需要 u 標誌才能正常運作。應根據每個目標的文件檢查用於跨語言使用的模式。
效能:基於回溯的正規表示式引擎(大多數包括 JavaScript)可能會對某些病態模式產生災難性的回溯。使測試人員掛起的測試表明該模式需要簡化 - 通常透過避免嵌套量詞和不明確的交替來簡化。