Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kedua

Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kedua

王林
王林asal
2023-06-25 18:30:151379semak imbas

Menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kedua adalah keperluan yang agak biasa. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan biasa dalam golang untuk pengesahan dan cara menulis ungkapan biasa untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kedua.

Pertama, mari kita lihat penggunaan asas ungkapan biasa dalam golang. Golang menyediakan pustaka ekspresi biasa regexp Kita boleh menggunakan ungkapan biasa dengan memanggil pakej regexp.

Sebelum menggunakan ungkapan biasa untuk pengesahan, kita perlu menulis ungkapan biasa terlebih dahulu. Berikut ialah ungkapan biasa yang mewakili nama domain peringkat kedua:

^[a-zA-Z0-9]+([-.]{1}[a-zA-Z0-9]+)*.[a-zA-Z]{2,5}$

Maksud ungkapan biasa ini ialah: padankan rentetan yang huruf pertamanya boleh menjadi huruf besar atau huruf kecil atau nombor, yang boleh termasuk tetapi tidak terhad kepada tanda sempang dan titik, dan berakhir dengan rentetan A yang berakhir dengan huruf Inggeris dan dengan panjang 2-5.

Kemudian mari kita lihat cara menggunakan ungkapan biasa ini untuk pengesahan dalam golang. Berikut ialah contoh kod yang menggunakan ungkapan biasa untuk mengesahkan sama ada URL itu adalah nama domain peringkat kedua:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    url := "http://www.example.com"

    re := regexp.MustCompile(`^[a-zA-Z0-9]+([-.]{1}[a-zA-Z0-9]+)*.[a-zA-Z]{2,5}$`)
    match := re.MatchString(url)

    if match {
        fmt.Println("URL是一个二级域名")
    } else {
        fmt.Println("URL不是一个二级域名")
    }
}

Dalam kod di atas, kami mula-mula menentukan URL untuk disahkan Dalam kod seterusnya, kami memanggil pakej regexp Fungsi MatchString digunakan untuk menentukan sama ada rentetan yang akan disahkan mematuhi ungkapan biasa yang ditentukan. Jika ia sepadan, kembalikan benar, jika tidak kembalikan palsu.

Dalam penggunaan sebenar, kita mungkin menghadapi beberapa situasi istimewa, seperti beberapa aksara khas dalam URL, dan kita perlu melarikan diri daripada aksara khas ini. Situasi lain ialah kita perlu mengabaikan kes dalam URL Dalam kes ini, kita perlu menggunakan pilihan abaikan kes dalam ungkapan biasa. Berikut ialah contoh kod yang menggunakan ungkapan biasa untuk mengesahkan sama ada URL ialah nama domain peringkat kedua dan mengabaikan huruf besar dan huruf khas:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    url := "http://wwW.ExaMPle.com?foo=bar"

    re := regexp.MustCompile(`(?i)^[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}$`)
    match := re.MatchString(url)

    if match {
        fmt.Println("URL是一个二级域名")
    } else {
        fmt.Println("URL不是一个二级域名")
    }
}

Dalam kod di atas, kami mula-mula menentukan URL untuk disahkan dan dalam kod berikut , kami memanggil fungsi MatchString dalam pakej regexp Fungsi ini digunakan untuk menentukan sama ada rentetan yang akan disahkan mematuhi ungkapan biasa yang ditentukan. (?i) bermaksud mengabaikan huruf besar, [a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}$ bermaksud memadankan domain peringkat kedua nama.

Ringkasnya, adalah keperluan biasa untuk menggunakan ungkapan biasa untuk mengesahkan sama ada URL ialah nama domain peringkat kedua. golang menyediakan pakej regexp untuk menyokong penggunaan ungkapan biasa Kami hanya perlu menulis ungkapan biasa yang sepadan dan menggunakan fungsi MatchString untuk mengesahkannya. Perlu diingatkan bahawa beberapa watak istimewa perlu dilepaskan, dan terdapat juga kes di mana kes dan watak istimewa perlu dipertimbangkan.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada alamat URL ialah nama domain peringkat kedua. 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