ホームページ >バックエンド開発 >Golang >Go で URL を正規表現と照合するにはどうすればよいですか?

Go で URL を正規表現と照合するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-10 16:09:14338ブラウズ

How to Match URLs with Regular Expressions in Go?

Go での正規表現による URL のマッチング

Go では、http.HandleFunc() は特定の URL パターンを処理するように設計されています。ただし、正規表現を使用したパターンのマッチングには適していません。

代替ソリューション:

代わりに、次のソリューションを検討してください:

  1. HandleFunc() with Rooted Subtree: ルート サブツリーにハンドラーを割り当てます
// 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"))
    }
}
  1. 外部ライブラリ: Gorilla MUX (github. com/gorilla/mux)、ルーティングをより詳細に制御し、正規表現をサポートします。マッチング。

たとえば、Gorilla MUX の場合:

r := mux.NewRouter()
r.HandleFunc("/digits", digitsHandler).Methods("GET")
r.HandleFunc("/abc", abcHandler).Methods("POST")

http.Handle("/", r)

これらの各メソッドにより、特定の要件に基づいてより詳細な URL マッチングが可能になります。

以上がGo で URL を正規表現と照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。