Heim > Backend-Entwicklung > Golang > Wie ordne ich URLs mit regulären Ausdrücken in Go zu?

Wie ordne ich URLs mit regulären Ausdrücken in Go zu?

DDD
Freigeben: 2024-12-10 16:09:14
Original
307 Leute haben es durchsucht

How to Match URLs with Regular Expressions in Go?

Abgleichen von URLs mit regulären Ausdrücken in Go

In Go ist http.HandleFunc() für die Verarbeitung spezifischer URL-Muster konzipiert. Es eignet sich jedoch nicht zum Abgleichen von Mustern mithilfe regulärer Ausdrücke.

Alternative Lösungen:

Erwägen Sie stattdessen die folgenden Lösungen:

  1. HandleFunc() mit Rooted Subtree: Weisen Sie einem Root-Teilbaum einen Handler zu (z. B. „/“) und führen Sie den Regexp-Abgleich innerhalb der Handler-Funktion selbst durch.
// 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"))
    }
}
Nach dem Login kopieren
  1. Externe Bibliothek: Nutzen Sie externe Bibliotheken wie Gorilla MUX (github.com/gorilla /mux), das mehr Kontrolle über das Routing bietet und den Abgleich regulärer Ausdrücke unterstützt.

Zum Beispiel mit Gorilla MUX:

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

http.Handle("/", r)
Nach dem Login kopieren

Jede dieser Methoden ermöglicht einen detaillierteren URL-Abgleich basierend auf spezifischen Anforderungen.

Das obige ist der detaillierte Inhalt vonWie ordne ich URLs mit regulären Ausdrücken in Go zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage