在字符串: 
http://www.repair.com/signin.aspx?name=haocer 
中匹配出字符串: 
signin.aspx 
或者在: 
http://www.repair.com/admin/signin.aspx?name=haocer 
中匹配出字符串: 
admin/signin.aspx 
也就是说取“?”号和第一个“/”号之间的所有字符

解决方案 »

  1.   

     string str1 = "http://www.repair.com/signin.aspx?name=haocer ";
                Regex reg = new Regex(@"[^/]+/([^/][^\?]*?)($|\?)");
                Match m = reg.Match(str1);
                if(m.Success)
                {
                    Response.Write(m.Result("$1")+"<BR>");
                }
                str1 = "http://www.repair.com/admin/signin.aspx?name=haocer  ";
                  reg = new Regex(@"[^/]+/([^/][^\?]*?)($|\?)");
                  m = reg.Match(str1);
                if (m.Success)
                {
                    Response.Write(m.Result("$1"));
                }
      

  2.   

    上面的
    reg不用重新实例化,因为他们是一样的
      

  3.   

    Regex ex = new Regex(@"(?=/?)[a-zA-Z.]*(?=[?])");
    Match m = ex.Match("http://www.repair.com/admin/signin.aspx?name=haocer ");
     Console.WriteLine(m.Value);
      

  4.   


    string input = @"http://www.repair.com/signin.aspx?name=haocer 
    中匹配出字符串: 
    signin.aspx 
    或者在: 
    http://www.repair.com/admin/signin.aspx?name=haocer ";
    Match m = Regex.Match(input, "(?i)(?<=http://[^/]+/)[^?]+");
    while(m.Success)
    {
        Console.WriteLine(m.Value);
        m = m.NexeMatch();
    }