Go에서 정규식을 사용하여 URL 매핑
Go에서 정규식을 사용하여 URL을 일치시키면 보다 유연하고 표현력이 풍부한 URL 라우팅이 가능합니다. 그러나 이 목적으로 http.HandleFunc() 함수에 의존하는 것은 이상적이지 않습니다.
http.HandleFunc() 함수는 주로 고정 경로 또는 루트 하위 트리를 일치시키는 데 사용됩니다. 정규식 사용을 지원하지 않습니다. 이를 달성하려면 루트 하위 트리(예: /)에 핸들러를 등록한 다음 핸들러 내에서 사용자 정의 정규식 일치 및 라우팅을 구현해야 합니다.
다음 예를 고려하세요.
import ( "fmt" "net/http" "regexp" ) var rNum = regexp.MustCompile(`\d`) // Matches URLs with digits var 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!