Go での URL パターン マッチングに正規表現を使用する
質問:
どうすればよいですか正規表現を利用して、Go での URL 処理に適切な関数を決定するプログラム?
答え:
提供されたコードは、固定パスまたはルート化されたサブツリーでの http.HandleFunc の使用を示しています。 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")) }
あるいは、次のような外部ライブラリの使用を検討してください。 Gorilla MUX として URL マッチングの柔軟性を高めます。
以上がGo で正規表現を使用して URL をルーティングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。