Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencapai Fungsi Pandangan Di Belakang Negatif dalam Ungkapan Biasa Go?

Bagaimanakah Saya Boleh Mencapai Fungsi Pandangan Di Belakang Negatif dalam Ungkapan Biasa Go?

Susan Sarandon
Susan Sarandonasal
2024-12-15 13:04:24413semak imbas

How Can I Achieve Negative Lookbehind Functionality in Go Regular Expressions?

Menegakkan Pandang Belakang dalam Go: Penyelesaian

Dalam Go, pernyataan pandangan negatif di belakang tidak disokong kerana kebimbangan prestasi. Untuk mengatasi cabaran ini, anda boleh meneroka kaedah alternatif untuk mencapai kefungsian yang sama.

Rex asal bertujuan untuk mengekstrak arahan yang tidak bermula dengan @, # atau / aksara. Berikut ialah dua pilihan:

1. Set Aksara Nafis:

Alih keluar pandangan negatif di belakang dan gantikannya dengan set aksara yang dinafikan.

\b[^@#/]\w.*

Jika dibenarkan pada permulaan rentetan, sauhkannya dengan ^

(?:^|[^@#\/])\b\w.*

2. Fungsi Penapis:

Laksanakan fungsi penapis yang mengalih keluar perkataan yang bermula dengan aksara tertentu.

func Filter(vs []string, f func(string) bool) []string {
    vsf := make([]string, 0)
    for _, v := range vs {
        if f(v) {
            vsf = append(vsf, v)
        }
    }
    return vsf
}

Gunakan fungsi penapis dalam fungsi Proses untuk memproses teks input.

func Process(inp string) string {
    t := strings.Split(inp, " ")
    t = Filter(t, func(x string) bool {
        return strings.Index(x, "#") != 0 &&
            strings.Index(x, "@") != 0 &&
            strings.Index(x, "/") != 0
    })
    return strings.Join(t, " ")
}

Penyelesaian ini menawarkan alternatif kepada pandangan negatif di belakang dalam Go, memastikan pemprosesan regex yang cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Pandangan Di Belakang Negatif dalam Ungkapan Biasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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