克服Golang 中的重疊模式
儘管正則表達式在處理重疊匹配方面存在局限性,但在Golang 中還有其他方法可以提取重疊模式。雖然複雜的表達式可能很誘人,但它們通常會導致不必要的複雜性和低效率。
一個有效的方法是利用 strings.Index 的直覺性質和 for 迴圈。例如,要尋找模式「..#..」的索引,您可以使用 strings.Index 迭代輸入字串並將索引累積到清單中。
input := "...#...#....#.....#..#..#..#......." idx := []int{} j := 0 for { i := strings.Index(input[j:], "..#..") if i == -1 { break } fmt.Println(j) idx = append(idx, j+i) j += i+1 } fmt.Println("Indexes:", idx)
這種方法簡化了匹配過程,提供對匹配的更好控制,並透過避免不必要的正規表示式操作來提高效率。循環的簡單本質使得處理各種模式和字串組合變得容易。
以上是如何在沒有正規表示式的情況下高效查找 Go 字串中的重疊模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!