Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memadankan URL dengan Ungkapan Biasa dalam Go?

Bagaimana untuk Memadankan URL dengan Ungkapan Biasa dalam Go?

DDD
Lepaskan: 2024-12-10 16:09:14
asal
286 orang telah melayarinya

How to Match URLs with Regular Expressions in Go?

Memadankan URL dengan Ungkapan Biasa dalam Go

In Go, http.HandleFunc() direka untuk mengendalikan corak URL tertentu. Walau bagaimanapun, ia tidak sesuai untuk memadankan corak menggunakan ungkapan biasa.

Penyelesaian Alternatif:

Sebaliknya, pertimbangkan penyelesaian berikut:

  1. HandleFunc() dengan Subtree Berakar: Berikan pengendali kepada akar subtree (cth., "/") dan lakukan pemadanan regexp dalam fungsi pengendali itu sendiri.
// Match everything
http.HandleFunc("/", route)

var rNum = regexp.MustCompile(`\d`)  // Has digit(s)

func route(w http.ResponseWriter, r *http.Request) {
    if rNum.MatchString(r.URL.Path) {
        digits(w, r)
    } else {
        w.Write([]byte("No digits found"))
    }
}
Salin selepas log masuk
  1. Pustaka Luaran: Gunakan perpustakaan luaran seperti Gorilla MUX (github .com/gorilla/mux), yang memberikan lebih kawalan ke atas penghalaan dan menyokong ekspresi biasa padanan.

Contohnya, dengan Gorilla MUX:

r := mux.NewRouter()
r.HandleFunc("/digits", digitsHandler).Methods("GET")
r.HandleFunc("/abc", abcHandler).Methods("POST")

http.Handle("/", r)
Salin selepas log masuk

Setiap kaedah ini membolehkan padanan URL yang lebih terperinci berdasarkan keperluan khusus.

Atas ialah kandungan terperinci Bagaimana untuk Memadankan URL dengan Ungkapan Biasa dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan