// gin 正则路由:
type route struct {
	reg *regexp.Regexp // 正则表达式
	method string // 请求方式
	handler func(c *gin.Context) // 处理器
}
var routes = []route{
  {regexp.MustCompile(`user-(\d+)-(.*?).html$`), "GET", getUserDetail},
}
func main() {
	router := gin.Default()
	router.Any("/*action", func(c *gin.Context) {
		// 使用正则路由表,url不需要参数
		url := strings.ToLower(c.Request.URL.Path)
		for _, route := range routes {
			if route.reg.MatchString(url) {
				if c.Request.Method == route.method {
					route.handler(c)
          return
				}
			}
		}
    // 未匹配则404
    c.String(http.StatusNotFound, "Page Not Found")
	})
	router.Run(":8800")
}