Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mensimulasikan Pandangan Negatif di Sebalik Penegasan dalam Ungkapan Biasa Go?
Mensimulasikan Pandangan Negatif di Belakang dalam Go
Reeks asal anda, yang menampilkan pandangan negatif di belakang penegasan, bertujuan untuk mengeluarkan arahan tanpa sebarang @, #, atau / aksara. Walau bagaimanapun, Go tidak menyokong pandangan negatif di belakang, menimbulkan halangan dalam melaksanakan corak ini.
Menulis Semula Regex
Untuk mencapai fungsi yang sama tanpa pandangan negatif, kita boleh menggantikan aksara yang akan dikecualikan dalam set aksara:
[^@#/]\w.*
Jika arahan tidak dibenarkan bermula dengan aksara ini, kita boleh menggunakan ^ sauh untuk menguatkuasakan syarat ini:
(?:^|[^@#\/])\b\w.*
Pendekatan Alternatif Menggunakan Fungsi Go
Sebagai alternatif, pertimbangkan untuk menggunakan fungsi Go untuk menapis dan proses rentetan input:
func Filter(vs []string, f func(string) bool) []string { ... } 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, " ") }
Pendekatan ini memanfaatkan fungsi penapis untuk mengecualikan perkataan bermula dengan yang ditentukan aksara, kemudian mencantumkan perkataan yang tinggal kembali ke dalam rentetan baharu. Anda boleh menemui demonstrasi yang berfungsi di taman permainan Go di http://play.golang.org/p/ntJRNxJTxo.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Pandangan Negatif di Sebalik Penegasan dalam Ungkapan Biasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!