如何匹配模式但从结果中排除

时间:2011-09-06 09:10:49

标签: regex url-rewriting

使用IIS网址重写模块我正在尝试将来自 /en/page.aspx 的传入网址重写为 /en/page/index.aspx

使用正则表达式我正在检查字符串是否以.aspx结尾

^.*(.aspx)$

目前在捕获组中我正在

/en/page.aspx

我怎样才能捕获 / en / page 部分?

接下来我将按如下方式重写Url:

{R:0}/index.aspx

2 个答案:

答案 0 :(得分:2)

要在不捕获的情况下进行匹配,您可以使用?:模式,例如(?:\.aspx)。但是,为了满足您的重定向需求,您可能需要使用以下表达式:

^(.*)(\.aspx)$

这样{R:1}将指向你所需要的。另请注意,您需要转义点,以便表达式匹配点字符,而不是每个其他字符。

答案 1 :(得分:1)

更改捕捉匹配的方式......

^(.*?)(\.aspx)$

进行匹配时,匹配应如下:

索引0应该是整个网址

索引1应为/ en / page

索引2应为.aspx