void Application_BeginRequest(object sender, EventArgs e)
    {
        Regex reg = new Regex(@".+News-(\d+).html");        var match = reg.Match(HttpContext.Current.Request.Url.AbsolutePath);        if (match.Success)
        {
            String id = match.Groups[1].Value;
                
            HttpContext.Current.RewritePath("NewsCount.aspx?id="+id);
        }
   }在Global.asax中写的代码如:News-1.html指向NewsCount.aspx?id=1我现在想把News-1.html改成News/1.html请问应该怎么改我把@".+News-(\d+).html" 改成@".+News/(\d+).html" 不过不行网上搜了一段时间 也没弄明白  水平不行 还请高手指教一下 谢谢了

解决方案 »

  1.   

     Regex reg = new Regex(".+News-(\\d+).html");
      

  2.   

    楼上的是不是把前面防止转义的符号去了,不能达到效果啊。我想要的效果是把NewsCount.aspx?id=1 变成News/1.html以前是News-1.html 想变了
      

  3.   


     string input = "News-1.html";
     string pattern = @"(?<=News)-(\d+)(?=\.html)";
     input = System.Text.RegularExpressions.Regex.Replace(input, pattern, @"/$1");
      

  4.   


    楼上的大哥你好。我文章里的代码也是复制的,你写的这些我不知道怎么替换呢。
    能在我文章的代码的基础上给个提示吗或者给我份Global.asax里面
    void Application_BeginRequest(object sender, EventArgs e)方法的URL重写代码在就是我想要的效果是News/1.html 不是News-1.html哎不管怎么用 谢谢楼上几位回复的
      

  5.   

    就是把News-1.html替换成News/1.html string input = "fdasfdsaf News-1.html fdsafdasfas";这样也可以把其中的News-1.html替换成News/1.html
    结果为fdasfdsaf News/1.html fdsafdasfas
      

  6.   

    我本来的意思不是两个HTML网页转换,是aspx重写成html可能前几楼的回复,把意思曲解了。在就是咱俩水平差距太大。你觉得能解决我问题的代码,在我眼中是一点都看不懂。大哥如果你不能在我1楼的代码的基础上,把NewsCount.aspx?id=1改成News/1.html就给我一份在Global.asax,Application_BeginRequest中url重写的简单代码好不。
      

  7.   

    try...按你的需求
    //要么是这样
    void Application_BeginRequest(object sender, EventArgs e)
    {
        Regex reg = new Regex(@".+News-(\d+).html");
        HttpContext.Current.RewritePath(reg.Replace(HttpContext.Current.Request.Url.AbsolutePath, "News/$1.html"));

    //或者是这样
    void Application_BeginRequest(object sender, EventArgs e)
    {
        Regex reg = new Regex(@"News-(\d+).html");
        HttpContext.Current.RewritePath(reg.Replace(HttpContext.Current.Request.Url.AbsolutePath, "News/$1.html"));
      

  8.   

    整这么麻烦干嘛?
    用伪静态,直接写在webconfig就行。