我正在尝试匹配正则表达式并获取匹配的捕获组名称。这在正则表达式只匹配字符串一次时有效,但如果匹配字符串不止一次,SubexpNames则不会返回重复的名称。


下面是一个例子:


package main


import (

    "fmt"

    "regexp"

)


func main() {

    re := regexp.MustCompile("(?P<first>[a-zA-Z]+) ")

    fmt.Printf("%q\n", re.SubexpNames())

    fmt.Printf("%q\n", re.FindAllStringSubmatch("Alan Turing ", -1))

}

输出是:


["" "first"]

[["Alan " "Alan"] ["Turing " "Turing"]]

是否可以获得每个子匹配的捕获组名称?