Go での URL マッチングに正規表現を使用する
Go では、net/http パッケージはハンドラーを登録するための http.HandleFunc 関数を提供します。特定の URL パターンに対する関数。ただし、この関数は、正規表現を使用した 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")) }
または、高度な URL ルーティングおよび正規表現一致機能を提供する、Gorilla MUX などのサードパーティ ライブラリを使用することもできます。
以上がGo で URL マッチングに正規表現を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。