我的(有效?)正则表达式在 gorilla/mux 中不起作用
My (valid?) regex doesn't work in gorilla/mux
我的代码中有这个正则表达式:
get.HandleFunc("/my/api/user/{userID:^([1-9][0-9]*)$}", app.Handle("user"))
但是当我 运行 测试时,只返回 404。我也试过这个:
get.HandleFunc("/my/api/user/{userID:\A([1-9][0-9]*)\z}", app.Handle("user"))
它与我的旧(但不正确)正则表达式完美配合:
get.HandleFunc("/my/api/user/{userID:[0-9]{1,}}", app.Handle("user"))
我想知道我的新正则表达式有什么问题。我尝试在一些网站上测试它,并在 Go 中使用 regexp
包,它总是有效。据我所知,gorilla/mux
使用 Go 的 regexp
包。有什么想法吗?
我想要的是检测不包括零的正整数。
如果你想检测不包括0的正整数,你应该使用这个字符class:[1-9]\d*
这意味着,第一个数字必须介于 1 和 9 之间。其他数字(如果存在,请查看 *
)可以是任何整数,包括 0。
anchors 很可能是这里的问题,您正试图在 start/end 个字符串位置断言。
我会简单地尝试修改旧的(有效的)正则表达式如下:
get.HandleFunc("/my/api/user/{userID:[1-9][0-9]*}", app.Handle("user"))
我的代码中有这个正则表达式:
get.HandleFunc("/my/api/user/{userID:^([1-9][0-9]*)$}", app.Handle("user"))
但是当我 运行 测试时,只返回 404。我也试过这个:
get.HandleFunc("/my/api/user/{userID:\A([1-9][0-9]*)\z}", app.Handle("user"))
它与我的旧(但不正确)正则表达式完美配合:
get.HandleFunc("/my/api/user/{userID:[0-9]{1,}}", app.Handle("user"))
我想知道我的新正则表达式有什么问题。我尝试在一些网站上测试它,并在 Go 中使用 regexp
包,它总是有效。据我所知,gorilla/mux
使用 Go 的 regexp
包。有什么想法吗?
我想要的是检测不包括零的正整数。
如果你想检测不包括0的正整数,你应该使用这个字符class:[1-9]\d*
这意味着,第一个数字必须介于 1 和 9 之间。其他数字(如果存在,请查看 *
)可以是任何整数,包括 0。
anchors 很可能是这里的问题,您正试图在 start/end 个字符串位置断言。
我会简单地尝试修改旧的(有效的)正则表达式如下:
get.HandleFunc("/my/api/user/{userID:[1-9][0-9]*}", app.Handle("user"))