Я хочу получить индексы следующего шаблона (\.\.#\.\.)
в следующей строке:
...#...#....#.....#..#..#..#.......
Но Golang не управляет совпадением совпадений.
Таким образом, я получил: [[1 6 1 6] [10 15 10 15] [16 21 16 21] [22 27 22 27]]
Как видно, две точки .
предшествуют и ставят суффикс второй #
, но она не возвращается методом FindAllStringSubmatchIndex
.
Я пытался использовать различные методы из регулярных выражений без успеха.Ища документацию, я не нашел ничего полезного в https://golang.org/pkg/regexp и https://golang.org/src/regexp/regexp.go
Напротив, кажется, что регулярное выражение не поддерживает эту функцию изначально:
// Если присутствует «All», подпрограмма сопоставляет последовательные непересекающиеся совпадения всего выражения.
Я могу решить эту проблему, но так как я делаю это упражнение, чтобы изучить Golang, я хочузнать.спасибо :)
Вот мой код для справки:
matches := r.pattern.FindAllStringSubmatchIndex(startingState)
fmt.Println(r.pattern)
fmt.Println(matches)
for _, m := range matches {
tempState = tempState[:m[0]+2] + "#" + tempState[m[0]+3:]
fmt.Println(tempState)
}