Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Halakan URL dalam Go?

Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Halakan URL dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-25 07:14:10184semak imbas

How Can I Use Regular Expressions to Route URLs in Go?

Menggunakan Ungkapan Biasa untuk Padanan Corak URL dalam Go

Soalan:

Bagaimana saya boleh gunakan ungkapan biasa untuk menentukan fungsi yang sesuai untuk pemprosesan URL dalam Go program?

Jawapan:

Kod yang disediakan menunjukkan penggunaan http.HandleFunc dengan laluan tetap atau subpokok berakar. Untuk menggunakan ungkapan biasa bagi pemadanan URL, daftarkan pengendali kepada subpokok berakar dan lakukan pemadanan regexp dalam pengendali.

Berikut ialah contoh:

func main() {
    http.HandleFunc("/", route) // Match everything
    http.ListenAndServe(":8080", nil)
}

var rNum = regexp.MustCompile(`\d`)  // Has digit(s)
var rAbc = regexp.MustCompile(`abc`) // Contains "abc"

func route(w http.ResponseWriter, r *http.Request) {
    switch {
    case rNum.MatchString(r.URL.Path):
        digits(w, r)
    case rAbc.MatchString(r.URL.Path):
        abc(w, r)
    default:
        w.Write([]byte("Unknown Pattern"))
    }
}

func digits(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Has digits"))
}

func abc(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Has abc"))
}

Sebagai alternatif, pertimbangkan untuk menggunakan pustaka luaran seperti sebagai Gorilla MUX untuk lebih fleksibiliti dalam padanan URL.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Halakan URL dalam Go?. 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