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

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

Mary-Kate Olsen
Lepaskan: 2024-11-27 04:25:11
asal
528 orang telah melayarinya

How Can I Use Regular Expressions for URL Matching in Go?

Menggunakan Ungkapan Biasa untuk Pemadanan URL dalam Go

Dalam Go, pakej net/http menyediakan fungsi http.HandleFunc untuk mendaftar pengendali berfungsi kepada corak URL tertentu. Walau bagaimanapun, fungsi ini tidak boleh digunakan untuk memadankan URL menggunakan ungkapan biasa.

Untuk menggunakan ungkapan biasa bagi pemadanan URL, anda boleh mendaftarkan pengendali kepada subpokok berakar dan melakukan pemadanan dan penghalaan regexp selanjutnya dalam fungsi pengendali.

Sebagai contoh, kod berikut menunjukkan cara mendaftar pengendali untuk corak URL akar (/) dan menggunakan ungkapan biasa untuk memadankan tertentu corak:

import (
    "fmt"
    "net/http"
    "regexp"
)

var (
    rNum = regexp.MustCompile(`\d`)  // Matches URLs with digits
    rAbc = regexp.MustCompile(`abc`) // Matches URLs containing "abc"
)

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

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"))
}
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan perpustakaan pihak ketiga seperti Gorilla MUX, yang menyediakan penghalaan URL lanjutan dan keupayaan pemadanan regexp.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Pemadanan URL dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan