在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