0

我正在寻找一些关于重写 URL 的正则表达式模式的帮助。我的网址结构是:

http://domain.com/[username]/[token]/[userid]/

数据类型有:

  • 用户名 = 字母数字
  • 令牌 = 字母数字
  • 用户 ID = 数字

数据示例:

http://domain.com/john1975/aBc123/123456789/

使用正则表达式,我试图获取每条数据的引用,因此我可以重写为:

index.asp?username={R:1}&token={R:2}&userid={R:3}

还要记住,正则表达式不应该太贪心,所以我仍然可以访问以下文件:

http://domain.com/about.asp
http://domain.com/images/logo.png

我试过的正则表达式是:

^[0-9a-z]+/[0-9a-z]+/[0-9]+$

这与我的示例 URL 不匹配。

4

1 回答 1

2

你错过了尾部的正斜杠。正则表达式应该是:

^([0-9a-z]+)/([0-9a-z]+)/([0-9]+)/$

我假设您将其标记为不区分大小写。如果没有,那么你需要

^([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9]+)/$

你还需要括号,这样你就可以调用你的反向引用,这也是错误的——你想匹配 1,2 和 3,而不是 0,这是整个表达式的匹配。他们应该阅读:

index.asp?username={R:1}&token={R:2}&userid={R:3}
于 2013-09-27T10:02:49.157 回答