ホームページ >バックエンド開発 >Golang >Go で正規表現を使用して URL をルーティングするにはどうすればよいですか?

Go で正規表現を使用して URL をルーティングするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-25 07:14:10175ブラウズ

How Can I Use Regular Expressions to Route URLs in Go?

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 サイトの他の関連記事を参照してください。

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