在Go 中捕獲多個引用組
本文解決了解析遵循特定格式的字符串的挑戰:大寫命令後跟可選引用的論點。目標是將命令和參數提取為單獨的字串。
為了處理此任務,使用正規表示式: re1, _ := regexp.Compile(([A-Z] )(?: " (1)" )*)。第一個捕獲組([A-Z] ) 匹配大寫命令,而第二個捕獲組(?: "([^"] )")* 匹配零個或多個帶引號的參數。
但是,提供的程式碼僅捕獲最後一個參數。 >1 )"))。此正規表示式使用聯合| 來允許指令或參數。透過將程式碼修改為:
現在可以成功擷取所有參數。 >↩<code class="go">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]) }</code>
以上是如何在 Go 中擷取多個引用組:正規表示式解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!