在Go 中將URL 與正規表示式配對
在Go 中,http.HandleFunc() 旨在處理特定的URL 模式。但是,它不適合使用正規表示式匹配模式。
替代解決方案:
相反,請考慮以下解決方案:
// 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")) } }
例如,使用Gorilla MUX:
r := mux.NewRouter() r.HandleFunc("/digits", digitsHandler).Methods("GET") r.HandleFunc("/abc", abcHandler).Methods("POST") http.Handle("/", r)
這些方法中的每一種都允許根據特定要求進行更詳細的URL 匹配。
以上是如何在 Go 中使用正規表示式來匹配 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!