在 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中文网其他相关文章!