我目前正在使用此正则表达式从网址获取页码:
@"\/(\d+)$";
适用于以下网址的工作正常:
/ some_category / 2
/ some_category2 / 323
我的网址现在有一些额外的查询字符串值(可选),因此当前的正则表达式不适用于这些情况。
所以现在我需要一个正则表达式来支持:
/ some_category / 2
/ some_category2 / 323
/ some_category2 / 323 = 1&安培; B = 2
?/ some_category2 / 323和C = 123&安培; A = 1和b = 2
任何帮助都将不胜感激。
我正在使用带有通配符的路由,因此我可以使用内置的asp.net mvc。
答案 0 :(得分:4)
应为/(\d+)
无需逃避前斜线。 $字符是一个行尾字符,由于数字出现在行尾
之前,因此无法正常工作答案 1 :(得分:2)
如果你正在使用MVC,为什么你需要一个Regex用于URL呢?难道你不能简单地在ActionResult中获取数字吗?
假设你的路线是
// Default Catch All MapRoute
routes.MapRoute("Default", "{controller}/{action}/{id}", new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
})
然后使用
public ActionResult myAction(int id){
// get your "number" by using the "id" variable
}
答案 2 :(得分:0)
试试这个。适用于JavaScript。
@"/(\d+)\??.*$";