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