在Go 中使用正規表示式進行URL 匹配
Go 中,net/http 套件提供了http.HandleFunc 函數來註冊處理程式函數針對特定的URL 模式。但是,此函數不能用於使用正規表示式來匹配 URL。
要使用正規表示式進行 URL 匹配,您可以將處理程序註冊到根子樹,並在處理程序函數中執行進一步的正規表示式匹配和路由。
例如,以下程式碼示範如何為根URL 模式(/) 註冊處理程序並使用正規表示式來符合特定的模式:
import ( "fmt" "net/http" "regexp" ) var ( rNum = regexp.MustCompile(`\d`) // Matches URLs with digits rAbc = regexp.MustCompile(`abc`) // Matches URLs containing "abc" ) func main() { http.HandleFunc("/", route) http.ListenAndServe(":8080", nil) } 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")) }
或者,您可以使用第三方庫,例如Gorilla MUX,它提供高級URL 路由和正規表示式匹配功能。
以上是Go中如何使用正規表示式進行URL匹配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!