Reguläre Ausdrücke für den URL-Musterabgleich in Go verwenden
Frage:
Wie kann ich Verwenden Sie reguläre Ausdrücke, um die geeignete Funktion für die URL-Verarbeitung in einem Go zu bestimmen Programm?
Antwort:
Der bereitgestellte Code demonstriert die Verwendung von http.HandleFunc mit einem festen Pfad oder einem verwurzelten Teilbaum. Um reguläre Ausdrücke für den URL-Abgleich zu verwenden, registrieren Sie einen Handler in einem verwurzelten Teilbaum und führen Sie einen Regexp-Abgleich innerhalb des Handlers durch.
Hier ist ein Beispiel:
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")) }
Alternativ können Sie eine externe Bibliothek verwenden, z als Gorilla MUX für mehr Flexibilität beim URL-Abgleich.
Das obige ist der detaillierte Inhalt vonWie kann ich reguläre Ausdrücke zum Weiterleiten von URLs in Go verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!