在Url重写中的RegEx分页

时间:2012-02-25 15:31:17

标签: asp.net regex url-rewriting

我在网站上使用网址重写并实现了代码:

        r = new Regex(@"Default.aspx\?Buy=(?<1>[\w\-\+]*)(?:&amp;|&)+PageIndex=(?<2>[\d]*)""", RegexOptions.IgnoreCase);
        txt = r.Replace(txt, "$1_dp.html?page=$2\""); 

在这种情况下,我的链接是:

www.mydomain.com/computers_dp.html?page=0 [1,2,3]取决于页码。

RegEx是否通过简单方法检查page = 0然后不添加param?page = 0并仅在PageIndex为&gt;时添加它0

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我认为这是解决这个问题的最简单方法。假设您已经实现了正则表达式,我会添加另一个正则表达式,只需将"?page=0"替换为""

r2 = new Regex(@"\?page=0$""", RegexOptions.IgnoreCase);
txt = r2.Replace(txt, "\""); 

除了非常痛苦的条件前瞻之外,真的没有办法检查正则表达式中捕获的组的值,所以只需添加另一个正则表达式来删除极端情况是最简单的,因此也是最佳解决方案。