首頁  >  文章  >  後端開發  >  如何在 Go 中擷取多個引用組:正規表示式解決方案

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 00:53:28820瀏覽

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

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn