首頁 >後端開發 >Golang >如何在 Go 中使用正規表示式路由 URL?

如何在 Go 中使用正規表示式路由 URL?

Barbara Streisand
Barbara Streisand原創
2024-11-25 07:14:10137瀏覽

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

在Go 中使用正規表示式進行URL 模式比對

問題:

問題:

問題:

問題:
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"))
}

問題:問題:問題:我怎樣才能利用正規表示式來決定Go 中用於URL 處理的適當函數程式? 答案:提供的程式碼示範如何使用固定路徑或根子樹的 http.HandleFunc。若要使用正規表示式進行 URL 匹配,請將處理程序註冊到根子樹並在處理程序內執行正規表示式匹配。 這是一個範例:或者,考慮使用外部函式庫,例如作為 Gorilla MUX,在 URL 匹配方面具有更大的靈活性。

以上是如何在 Go 中使用正規表示式路由 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn