Dalam pengaturcaraan, selalunya perlu untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kesembilan Dalam kes ini, ungkapan biasa boleh digunakan untuk pengesahan. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kesembilan.
Dalam golang, menggunakan ungkapan biasa biasanya memerlukan pengenalan pakej "regexp". Pakej ini menyediakan struktur Regexp untuk mewakili ungkapan biasa. Kaedah MatchString menggunakan struktur ini boleh digunakan untuk pemadanan biasa.
Pertama sekali, anda perlu memastikan bahawa alamat URL berada dalam format yang betul. Secara umumnya, alamat URL harus terdiri daripada berbilang bahagian: protokol, nama domain, laluan, dsb. Di sini kami hanya mengesahkan sama ada bahagian "nama domain" alamat URL ialah nama domain peringkat kesembilan.
Nama domain peringkat kesembilan merujuk kepada nama domain khas, yang terdiri daripada sembilan bahagian, setiap bahagian dipisahkan dengan ".". Contohnya: www.example.com.cn Setiap bahagian nama domain peringkat kesembilan terdiri daripada huruf Inggeris, nombor atau garis mendatar. Setiap bahagian tidak boleh melebihi 63 aksara. Panjang keseluruhan nama domain tidak boleh melebihi 255 aksara.
Berikut ialah contoh ungkapan biasa yang sepadan dengan nama domain peringkat kesembilan:
^([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9].)+[a-zA-Z]{2,}.$
Antaranya, "^" bermaksud permulaan rentetan yang sepadan dan "$" bermaksud hujung rentetan yang sepadan. Tanda kurung mewakili kumpulan ungkapan biasa, "[a-zA-Z0-9]" mewakili padanan huruf atau nombor dan "-" mewakili padanan aksara sempang. "{0,61}" bermaksud memadankan sifar hingga 61 aksara. "[a-zA-Z]{2,}" bermaksud memadankan sekurang-kurangnya dua huruf untuk memastikan ia adalah nama domain peringkat tinggi yang sah. "." bermaksud memadankan tempoh.
Berikut ialah kod sampel yang menggunakan ungkapan biasa untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kesembilan:
package main import ( "fmt" "regexp" ) func main() { // 定义正则表达式 pattern := "^([a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}\.$" reg := regexp.MustCompile(pattern) // 测试数据 url1 := "www.example.com.cn." url2 := "www.google.com." url3 := "www.123456789012345678901234567890123456789012345678901234567890123.com." url4 := "www.abcdefg-12345.com." // 验证URL是否为九级域名 fmt.Printf("%s is a nine-level domain? %t ", url1, reg.MatchString(url1)) fmt.Printf("%s is a nine-level domain? %t ", url2, reg.MatchString(url2)) fmt.Printf("%s is a nine-level domain? %t ", url3, reg.MatchString(url3)) fmt.Printf("%s is a nine-level domain? %t ", url4, reg.MatchString(url4)) }
Hasil output ialah:
www.example.com.cn. is a nine-level domain? true www.google.com. is a nine-level domain? false www.123456789012345678901234567890123456789012345678901234567890123.com. is a nine-level domain? false www.abcdefg-12345.com. is a nine-level domain? true
Sebagaimana anda boleh lihat, alamat URL pertama dan terakhir kedua-duanya ditentukan dengan betul sebagai nama domain peringkat kesembilan, manakala alamat URL kedua dan ketiga ditentukan sebagai nama domain bukan peringkat kesembilan.
Ringkasnya, menggunakan ungkapan biasa dalam golang boleh mengesahkan dengan mudah sama ada alamat URL ialah nama domain peringkat kesembilan atau keperluan format lain. Dalam aplikasi praktikal, ungkapan biasa yang sepadan boleh ditakrifkan seperti yang diperlukan untuk pemadanan.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kesembilan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!