」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中擷取多個引用組:正規表示式解決方案

如何在 Go 中擷取多個引用組:正規表示式解決方案

發佈於2024-11-07
瀏覽:307

How to Capture Multiple Quoted Groups in Go: A Regex Solution

在Go 中捕獲多個引用組

本文解決了解析遵循特定格式的字符串的挑戰:大寫命令後跟可選引用的論點。目標是將命令和參數提取為單獨的字串。

要處理此任務,需要使用正規表示式: re1, _ := regexp.Compile(([A-Z] )(?: " (1) ")*)。第一個捕獲組([A-Z] ) 匹配大寫命令,而第二個捕獲組(?: "([^"] )")* 匹配零個或多個帶引號的參數。

但是,提供的程式碼僅捕獲最後一個參數。 ]1 )"))。此正規表示式使用聯合| 來允許命令或參數。透過將代碼修改為:

re1, _ := regexp.Compile (`([A-Z] )|(?: "([^"] )")`) 結果 := re1.FindAllStringSubmatch(`指令 "arg1" "arg2" "arg3"`, -1) fmt.Println("指令:", 結果[0][1]) for _, arg := 範圍結果[1:] { fmt.Println("參數:", arg[2]) }
re1, _ := regexp.Compile(`([A-Z] )|(?: "([^"] )")`)
results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1)

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}


"
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3