Я прихожу из python, так что я, вероятно, просто не смотрю на это правильно. Я хотел бы создать довольно сложное регулярное выражение и получить доступ к совпадению полей по имени. Я не могу найти хороший пример. Самое близкое, что мне удалось получить, это следующее:
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. Какой эквивалентный способ сделать это? Или, если мне нужно преобразовать соответствие в карту, какой самый идиоматический способ сделать, а затем получить доступ к карте?