我正在尝试匹配正则表达式并获取匹配的捕获组名称。这在正则表达式只匹配字符串一次时有效,但如果匹配字符串不止一次,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"]]
是否可以获得每个子匹配的捕获组名称?