我希望能够获取以下字符串中模式
但是Golang不管理重叠匹配。因此我得到了:
(\.\.#\.\.)
的索引:
...#...#....#.....#..#..#..#.......
但是Golang不管理重叠匹配。因此我得到了:
[[1 6 1 6] [10 15 10 15] [16 21 16 21] [22 27 22 27]]
。正如你所看到的,两个点“.”在第二个“#”之前和之后,但它没有被方法FindAllStringSubmatchIndex
返回。我尝试使用regexp的不同方法,但没有成功。在搜索文档时,我在https://golang.org/pkg/regexp和https://golang.org/src/regexp/regexp.go上找不到有用的信息。相反,似乎regexp不原生支持这种功能:我可以解决这个问题,但由于我正在做这个练习来学习Golang,所以我想知道。谢谢 :) 下面是我的参考代码://如果'All'存在,则该例程匹配整个表达式的连续非重叠匹配。
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)
}
strings.Index
函数和一个 for 循环来实现。 - undefined