Здесь: "
https://coderlessons.com/articles/go/reguliarnye-v...,
в разделе "Группировка" есть пример:
func main() {
e := `(?P<first>\w+) (?P<middle>.+ )?(?P<last>\w+)`
r := regexp.MustCompile(e)
names := r.SubexpNames()
fullNames := []string{
`John F. Kennedy`,
`Michael Jordan`}
for _, fullName := range fullNames {
result := r.FindAllStringSubmatch(fullName, -1)
m := map[string]string{}
for i, n := range result[0] {
m[names[i]] = n
}
fmt.Println(«first name:», m[«first»])
fmt.Println(«middle_name:», m[«middle»])
fmt.Println(«last name:», m[«last»])
fmt.Println()
}
}
Output:
first name: John
middle_name: F.
last name: Kennedy
first name: Michael
middle_name:
last name: Jordan
Код рабочий, но мне хотелось бы его изменить на поиск данных в файле (ioutil.ReadFile),
а он ругается на строку for i, n := range resultf[0]:
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
main.main()
C:/Users/Пользователь/go/src/test/test.go:17 +0x430
exit status 2
То есть вопрос заключается в том, как прочитанный из файла массив, подкинуть в fullNames