我试图匹配一个正则表达式,并获取匹配的捕获组名称。当正则表达式仅与字符串匹配一次,但如果它与字符串匹配一次以上,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))
}
Run Code Online (Sandbox Code Playgroud)
输出为:
["" "first"]
[["Alan " "Alan"] ["Turing " "Turing"]]
Run Code Online (Sandbox Code Playgroud)
是否可以获取每个子匹配项的捕获组名称?