Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mencari Padanan Bertindih dalam Go Strings?

Bagaimana untuk Mencari Padanan Bertindih dalam Go Strings?

Barbara Streisand
Lepaskan: 2024-12-03 21:59:11
asal
885 orang telah melayarinya

How to Find Overlapping Matches in 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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan