我來自python,所以我可能只是不看這個正確的方式。我想創建一個相當複雜的正則表達式,並能夠通過名稱訪問字段匹配。我似乎無法找到一個好例子。最近我設法得到的是這樣的:使用來自Go正則表達式的命名匹配
package main
import (
"fmt"
"regexp"
)
var myExp = regexp.MustCompile(`(?P<first>\d+)\.(\d+).(?P<second>\d+)`)
func main() {
fmt.Printf("%+v", myExp.FindStringSubmatch("1234.5678.9"))
match := myExp.FindStringSubmatch("1234.5678.9")
for i, name := range myExp.SubexpNames() {
fmt.Printf("'%s'\t %d -> %s\n", name, i, match[i])
}
//fmt.Printf("by name: %s %s\n", match["first"], match["second"])
}
註釋掉的行是我如何訪問python中的命名字段。什麼是去做這件事的等效方式?或者,如果我需要將匹配轉換爲地圖,那麼去製作然後訪問地圖最常用的方法是什麼?
由於我無法在第一個建議的答案下面添加註釋,所以這看起來像是製作地圖的很多代碼。我建議你編輯答案以顯示訪問地圖中的值。例如 \t結果:= myExp.FindStringSubmatchMap(「1234.5678.9」) \t fmt.Printf(「%s \ n」,result [「second」]) –
沒有名爲'FindStringSubmatchMap'的方法。 – chmike