Я сделал функцию разделения на регулярные выражения, основанную на поведении функции разделения на регулярные выражения в java, c #, php .... Она возвращает только массив строк без информации об индексе.
func RegSplit(text string, delimeter string) []string {
reg := regexp.MustCompile(delimeter)
indexes := reg.FindAllStringIndex(text, -1)
laststart := 0
result := make([]string, len(indexes) + 1)
for i, element := range indexes {
result[i] = text[laststart:element[0]]
laststart = element[1]
}
result[len(indexes)] = text[laststart:len(text)]
return result
}
пример:
fmt.Println(RegSplit("a1b22c333d", "[0-9]+"))
результат:
[a b c d]