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!