gpt4 book ai didi

正则表达式在 Golang HandleFunc 函数中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 03:33:54 25 4
gpt4 key购买 nike

我正在尝试根据 Go 中的模式重定向 URL。如果我的 URL 包含“clientApi”,那么我将它发送到 clientApiPoint func,否则我将它发送到 redirectApiPoint func。我的 handleRequest 函数是

func handleRequest()  {
r := mux.NewRouter()
r.HandleFunc("/", homePage)
r.HandleFunc("/clientApi", clientApiPoint)
r.HandleFunc("/{^((?!clientApi).)*$}", redirectApiPoint)
http.Handle("/", r)
log.Fatal(http.ListenAndServe(":8081", nil))
}

{^((?!clientApi).)*$} 如果我的 url 类似于

,则正则表达式工作正常
localhost:8081/somerandonurl  (sending it to redirectApiPoint func)

但是如果 url 中有一个或多个“/”,则正则表达式不会将其重定向到 redirectApiPoint func。

localhost:8081/somerandonurl/somethingdifferent    (not sending it to redirectApiPoint. 404 page not found message)

最佳答案

您的正则表达式在“localhost:8081/somerandonurl”上工作,因为第一个“/”匹配。

你需要像 "/(.*$)"这样的东西,但这将匹配任何/blala/blala/...

您可以从这里测试您的正则表达式: Regex

关于正则表达式在 Golang HandleFunc 函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56000128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com