<UrlRewrite>
<Rule Look="word-([0-9]+).aspx" Send="default.aspx?classid=0&amp;id=$1" />
<Rule Look="word-([0-9]+)-([0-9]+).aspx" Send="default.aspx?classid=0|$1&amp;id=$2" />
</UrlRewrite>
如上XML配置文件,一般重写URL地址的情况如下:访问 word-10.aspx 被重写的URL地址是 default.aspx?classid=0&id=10
访问 word-10-15.aspx 被重写的URL地址是 default.aspx?classid=0|10&id=15但是现在我要反过来,写一个方法实现根据 default.aspx?classid=0&id=10 地址,得到 word-10.aspx
根据 default.aspx?classid=0|10&id=15 地址,得到 word-10-15.aspx
请问这个如何用简单的方法实现,求救了。

解决方案 »

  1.   


                string content = "default.aspx?classid=0&id=10";
                System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"(?<=&id=)[\d]+");
                System.Text.RegularExpressions.Match m = reg.Match(content);
                MessageBox.Show("word-"+m.Value+".aspx");
      

  2.   

    把Look的([0-9]+)和Send的$对调,Send的&amp;改为&,再Replace
      

  3.   

    上面2位,这都不具有通用性,xml是随意可配置的[code=XML]
    <UrlRewrite>
    <Rule Look="text_([a-zA-Z]+).aspx" Send="default.aspx?text=$1" />
    <Rule Look="test/([a-zA-Z]+)-([a-zA-Z]+).aspx" Send="default.aspx?test=$1&amp;type=$2" />
        <Rule Look="word-([0-9]+).aspx" Send="default.aspx?classid=0&amp;id=$1" />
        <Rule Look="word-([0-9]+)-([0-9]+).aspx" Send="default.aspx?classid=0|$1&amp;id=$2" />
    </UrlRewrite>访问 text_yes.aspx 被重写的URL地址是 default.aspx?text=yes
    访问 test/default-like.aspx 被重写的URL地址是 default.aspx?test=default&type=like
    访问 word-10.aspx 被重写的URL地址是 default.aspx?classid=0&id=10
    访问 word-10-15.aspx 被重写的URL地址是 default.aspx?classid=0|10&id=15但是现在我要反过来,写一个方法实现访问 default.aspx?text=yes 被重写的URL地址是 text_yes.aspx
    访问 default.aspx?test=default&type=like 被重写的URL地址是 test/default-like.aspx
    根据 default.aspx?classid=0&id=10 地址,得到 word-10.aspx
    根据 default.aspx?classid=0|10&id=15 地址,得到 word-10-15.aspx
    请问这个如何用简单的方法实现,求救了。
      

  4.   

    上面2位,这都不具有通用性,xml是随意可配置的
    <UrlRewrite>
    <Rule Look="text_([a-zA-Z]+).aspx" Send="default.aspx?text=$1" />
    <Rule Look="test/([a-zA-Z]+)-([a-zA-Z]+).aspx" Send="default.aspx?test=$1&amp;type=$2" />
        <Rule Look="word-([0-9]+).aspx" Send="default.aspx?classid=0&amp;id=$1" />
        <Rule Look="word-([0-9]+)-([0-9]+).aspx" Send="default.aspx?classid=0|$1&amp;id=$2" />
    </UrlRewrite>
    访问 text_yes.aspx 被重写的URL地址是 default.aspx?text=yes
    访问 test/default-like.aspx 被重写的URL地址是 default.aspx?test=default&type=like
    访问 word-10.aspx 被重写的URL地址是 default.aspx?classid=0&id=10
    访问 word-10-15.aspx 被重写的URL地址是 default.aspx?classid=0|10&id=15但是现在我要反过来,写一个方法实现访问 default.aspx?text=yes 被重写的URL地址是 text_yes.aspx
    访问 default.aspx?test=default&type=like 被重写的URL地址是 test/default-like.aspx
    根据 default.aspx?classid=0&id=10 地址,得到 word-10.aspx
    根据 default.aspx?classid=0|10&id=15 地址,得到 word-10-15.aspx
    请问这个如何用简单的方法实现,求救了。