Heim > Backend-Entwicklung > Golang > Wie kann ich reguläre Ausdrücke für den URL-Abgleich in Go verwenden?

Wie kann ich reguläre Ausdrücke für den URL-Abgleich in Go verwenden?

Mary-Kate Olsen
Freigeben: 2024-11-27 04:25:11
Original
498 Leute haben es durchsucht

How Can I Use Regular Expressions for URL Matching in Go?

Verwenden regulärer Ausdrücke für den URL-Abgleich in Go

In Go stellt das Paket net/http die Funktion http.HandleFunc zum Registrieren eines Handlers bereit Funktion auf ein bestimmtes URL-Muster umstellen. Diese Funktion kann jedoch nicht zum Abgleichen von URLs mithilfe regulärer Ausdrücke verwendet werden.

Um reguläre Ausdrücke für den URL-Abgleich zu verwenden, können Sie einen Handler in einem verwurzelten Teilbaum registrieren und innerhalb der Handler-Funktion weitere Regex-Abgleiche und Weiterleitungen durchführen.

Der folgende Code zeigt beispielsweise, wie man einen Handler für das Root-URL-Muster (/) registriert und reguläre Ausdrücke verwendet, um spezifische Übereinstimmungen zu erzielen Muster:

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"))
}
Nach dem Login kopieren

Alternativ können Sie Bibliotheken von Drittanbietern wie Gorilla MUX verwenden, die erweiterte URL-Routing- und Regexp-Matching-Funktionen bieten.

Das obige ist der detaillierte Inhalt vonWie kann ich reguläre Ausdrücke für den URL-Abgleich in Go verwenden?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage