0

我最近发现了 IIS7+ URL 重写器,并试图用它来重定向使用模式匹配的请求。

我想将对旧版本路径的所有请求重定向到最新发布路径。该版本附加到网站路径并随着每个版本的增加而增加,如下所示:

Website1RC1 --> Website2 --> ... to Website22RC15

上面路径中的每个部分:

Website = Fixed
1-100 = Always there
RC = Optional
1-100 = Optional

知道最新版本并知道版本是增量的,有没有办法让一个正则表达式匹配所有旧版本?我想避免的是匹配最新版本的表达式,否则它将以无限重定向告终。

4

1 回答 1

0

我知道做这样的事情的唯一方法是使用分组机制,您可以在其中显式地将最新的匹配与文字匹配,并将其他匹配与通用表达式匹配。然后检查一般匹配的上下文,如下所示,此处演示:

^(?:(Website22RC15)|(Website1?\d{1,2}(?:RC)?1?\d{1,2}))$

我认为可能有一种方法可以使用否定的“向前看”和“向后看”功能,但这似乎只能与在您感兴趣的内容之前或之后匹配不同的字符串一起使用。

顺便说一句,请注意,如果存在 RC,则通常无法区分这两个整数。

于 2013-06-26T12:49:37.500 回答