Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencari Padanan Bertindih dalam Go Strings?
Mencari Padanan Bertindih dalam Go
Anda ingin mencari indeks corak .#.#.. dalam rentetan tertentu, tetapi Go tidak menyokong padanan bertindih dalam fungsi FindAllStringSubmatchIndex terbina dalamnya. Untuk menangani perkara ini, jawapan berikut mencadangkan pendekatan alternatif menggunakan rentetan.Indeks dan gelung bukannya regex.
import ( "fmt" "strings" ) func main() { input := "...#...#....#.....#..#..#..#......." idx := []int{} j := 0 for { i := strings.Index(input[j:], "..#..") if i == -1 { break } idx = append(idx, j+i) j += i + 1 } fmt.Println("Indexes:", idx) }
Pendekatan ini berfungsi dengan mencari indeks corak secara berulang menggunakan rentetan.Indeks dan menambahkannya pada kepingan indeks sehingga corak tidak lagi ditemui dalam rentetan input. Ia lebih mudah, lebih cekap dan mengelakkan pengehadan regex untuk tugasan khusus ini.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Padanan Bertindih dalam Go Strings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!