工具用的順手嗎?
你的回饋能幫助我們做得更好
專為Go開發者設計的正規表示式線上測試工具,驗證RE2語法規則,實時顯示匹配結果和捕獲組。
i
m
s
請輸入正規表示式和待匹配文字
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
此工具適合把模式套在一段樣本文字上,快速查看命中內容、捕獲組與替換結果。不過頁面名稱雖以 Golang 為主題,實際執行的是瀏覽器的 JavaScript 正規表示式,不是 Go 執行環境,也沒有呼叫 Go 的 regexp 套件。因此它可以協助試寫常見字元類、分組和量詞等重疊語法,不能證明模式符合 Go 的 RE2 語法,也不能當成 Go 程式編譯或執行測試。
正規表示式是用文字描述搜尋模式的寫法。括號可建立捕獲組,量詞可指定重複次數,旗標則改變比對方式。結果會列出匹配數、原文中的高亮、每筆命中的起始位置、長度與捕獲組;位置從 0 起算,是 JavaScript 字串索引。替換模式會顯示替換後文字。位置索引及替換規則也不應直接視為 Go API 的輸出格式。
Go 官方文件指出,Go 的 regexp 語法以 RE2 為基礎,且有其自身的語法及行為界線;JavaScript RegExp 則是另一套語法。兩邊結果可能不同,尤其在只被其中一方支援的語法、旗標、Unicode 邊界及替換細節上。以下內容因此將本頁定位為快速探索工具,而非 Go 相容性檢查器。
指南
依步驟完成操作,並透過範例核對輸入與結果。
在模式欄輸入表達式,在文字欄放入短而具代表性的樣本。也可載入範例,再改成自己的虛構測試資料。輸入模式時不需要外層斜線分隔符。
匹配模式會列出所有命中及捕獲組。切換到替換模式後,填入替換內容;「全部替換」勾選時處理所有命中,取消時只替換第一筆。替換內容中的 $1、$2 可引用 JavaScript 替換規則中的捕獲組。
查看命中數、高亮位置、索引、長度及各組內容。若有語法錯誤,先檢查括號、方括號和反斜線;若沒有命中,確認文字是否包含模式所需內容,以及旗標設定是否符合預期。替換結果可複製供後續比對。
把候選模式放進目標 Go 版本,以標準庫編譯並對代表性案例測試。特別要驗證 JavaScript 可以接受、但 Go 可能不支援的語法,以及正式程式使用的替換函式行為。
例:模式 ([A-Z]{2})(\d{3}) 配上文字「編號 AB123」時,可觀察完整命中和兩個捕獲組。這只示範如何讀取頁面結果,並不代表此語法或索引在所有 Go 使用情境中完全一致。
情境
查看這項工具在不同工作與生活流程中的用法。
整理固定格式的測試字串,例如「代碼 AB123」,以群組分開英文字母與數字,檢查每一組是否取得預期內容。完成後再到 Go 程式驗證。
用一小段虛構文字先測試替換片段及是否全部替換。查看前後文字,確認命中範圍沒有擴大,再把規則帶進實際處理流程。
分享不含個資的模式和樣本,讓同事能直接看到命中與捕獲組。若討論的是 Go 專案規格,最後仍以專案目標環境的 Go 測試結果為準。
問答
集中解答常見疑問與容易混淆的問題。
不能。它使用 JavaScript RegExp 執行,不是 Go 編譯器或 Go 的 regexp 套件。即使頁面接受某個模式,仍須在 Go 目標版本中編譯與測試。
兩邊採用的語法實作、旗標、Unicode 處理及替換慣例並不完全相同。若模式含有進階語法或結果用於正式程式,請將相同樣本放進 Go 測試案例核對。
位置從 0 開始,表示命中在輸入字串中的 JavaScript 索引位置;長度也是依 JavaScript 字串計算。它不是 Go 字串的 UTF-8 位元組偏移量。
多行選項對應 JavaScript 的 m 旗標,會改變 ^ 與 $ 對行界線的判讀;「單行模式(. 匹配換行)」對應 s,使點號可匹配換行。忽略大小寫對應 i。多行預設開啟,其餘兩項預設關閉。
須知
使用前了解適用範圍、結果限制與必要提醒。
頁面名稱不代表它以 Go 引擎執行。JavaScript 測試通過不等於 Go 語法有效或生產結果正確;頁面上的匹配位置、旗標和替換結果也有 JavaScript 的定義。Go 官方文件描述了 Go regexp 的語法與實作特性,應以該文件及你的 Go 版本為準。避免貼入密碼、個人資料或未脫敏的正式日誌;用虛構或刪除識別資訊的短樣本進行試寫。
推薦
查找相關工具、專題與可用的 API 能力。