Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh
Menggunakan ungkapan biasa untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh adalah tugas yang sangat biasa dalam golang. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh.
Pertama sekali, kita perlu memahami apa itu nama domain peringkat ketujuh. Dalam Internet, nama domain ialah rentetan yang mengenal pasti satu set alamat IP dan hubungannya yang sepadan. Antaranya, nama domain peringkat atas ialah nama domain peringkat tertinggi, seperti .com, .cn, dsb. Di bawah nama domain peringkat atas ialah nama domain peringkat kedua, seperti baidu.com, google.cn, dsb. Begitu juga, nama domain peringkat ketujuh merujuk kepada nama domain peringkat ketujuh di bawah nama domain peringkat atas, seperti blog.baidu.com, maps.google.cn, dsb.
Seterusnya, kami akan menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh.
Pertama, kita perlu menguraikan alamat URL kepada bahagian yang berbeza, seperti protokol, nama hos, laluan, dsb. Ini boleh dicapai melalui perpustakaan net/url di golang. Kod khusus adalah seperti berikut:
import ( "fmt" "net/url" ) func main() { rawurl := "https://blog.baid.com/path/to/resource" parsedUrl, err := url.Parse(rawurl) if err != nil { fmt.Printf("Parsing URL failed: %s ", err.Error()) return } fmt.Println(parsedUrl.Scheme) // 输出 "https" fmt.Println(parsedUrl.Hostname()) // 输出 "blog.baid.com" fmt.Println(parsedUrl.Path) // 输出 "/path/to/resource" }
Selepas menguraikan nama hos, kami perlu melakukan pengesahan ungkapan biasa pada nama hos. Kita boleh menggunakan regexp perpustakaan ekspresi biasa dalam golang untuk mencapai ini. Kod khusus adalah seperti berikut:
import ( "fmt" "regexp" ) func main() { hostname := "blog.baid.com" // 从上一步获取 sevenLevelDomain := `^([a-zA-Z0-9][-a-zA-Z0-9]{0,61}[a-zA-Z0-9].)+([a-zA-Z]{2,})$` matched, err := regexp.MatchString(sevenLevelDomain, hostname) if err != nil { fmt.Printf("Regex validation failed: %s ", err.Error()) return } if matched { fmt.Println("This is a valid seven-level domain.") } else { fmt.Println("This is NOT a valid seven-level domain.") } }
Dalam kod ini, kami mentakrifkan rentetan ungkapan biasa sevenLevelDomain, yang digunakan untuk memadankan format nama domain peringkat ketujuh. Maksud ungkapan biasa ini ialah: bermula dengan huruf atau nombor, rentetan panjang 1 hingga 61 yang terdiri daripada huruf, nombor dan "-", berakhir dengan huruf atau nombor, dipisahkan dengan ".", dan akhirnya dengan Nama Domain diakhiri dengan huruf. Ungkapan biasa ini boleh memadankan nama domain peringkat ketujuh seperti "blog.baid.com" dan "news.sports.cnn.com".
Akhir sekali, kita hanya perlu menggabungkan dua langkah di atas. Kod khusus adalah seperti berikut:
import ( "fmt" "net/url" "regexp" ) func main() { rawurl := "https://blog.baid.com/path/to/resource" parsedUrl, err := url.Parse(rawurl) if err != nil { fmt.Printf("Parsing URL failed: %s ", err.Error()) return } sevenLevelDomain := `^([a-zA-Z0-9][-a-zA-Z0-9]{0,61}[a-zA-Z0-9].)+([a-zA-Z]{2,})$` matched, err := regexp.MatchString(sevenLevelDomain, parsedUrl.Hostname()) if err != nil { fmt.Printf("Regex validation failed: %s ", err.Error()) return } if matched { fmt.Printf("%s is a valid seven-level domain. ", parsedUrl.Hostname()) } else { fmt.Printf("%s is NOT a valid seven-level domain. ", parsedUrl.Hostname()) } }
Setakat ini, kami telah berjaya menggunakan ungkapan biasa dan perpustakaan net/url dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh. Melalui kajian kod di atas, saya percaya pembaca akan mempunyai pemahaman yang lebih mendalam tentang penggunaan ungkapan biasa dan pemprosesan alamat URL dalam golang.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat ketujuh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!