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

如何在 Go 中使用正規表示式來匹配 URL?

DDD
DDD原創
2024-12-10 16:09:14279瀏覽

How to Match URLs with Regular Expressions in Go?

在Go 中將URL 與正規表示式配對

在Go 中,http.HandleFunc() 旨在處理特定的URL 模式。但是,它不適合使用正規表示式匹配模式。

替代解決方案:

相反,請考慮以下解決方案:

  1. HandleFunc() 與根子樹:將處理程序指派給根子樹(例如“/”)並在處理函數本身內執行正規表示式匹配。
// 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"))
    }
}
  1. 外部庫:利用外部庫,如 Gorilla MUX (github.com)。 com/gorilla/mux),它提供了對路由的更多控制並支援正則表達式

例如,使用Gorilla MUX:

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

http.Handle("/", r)

這些方法中的每一種都允許根據特定要求進行更詳細的URL 匹配。

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

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