string path= "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
xxxx 是不可以预定的 , 红色字体内的. 固定5个字符. 
result
string url="report/aaa.aspx"; 很简单.就是去掉vip_XX前面的字符,跟?号后面的字符.

解决方案 »

  1.   

    擦, 急了. 还需要把VIP_XX 给截取出来.
      

  2.   

     string path = "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
                path = Regex.Match(path, @"[\w_]+/[\w_]+\.\w+").Value;
      

  3.   

    string path = "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
                    path = Regex.Match(path,@"(?i)(?<=/\w{3}_\w{2}/)[^\?]+").Value;
                    //report/aaa.aspx
      

  4.   

    string path = "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
    Uri uri = new Uri(path);
    string r1 = uri.Segments[uri.Segments.Length - 3].Trim('/');
    string r2 = uri.Segments[uri.Segments.Length - 2] + uri.Segments[uri.Segments.Length - 1];
    Response.Write(r1 + "<br/>");
    Response.Write(r2);
      

  5.   

       这个url的XXX 不确定有多少个的
      

  6.   

    你应该有明确的匹配位置试试string path = "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
                    path = Regex.Match(path,@"(?i)(?<=/)([^\?/]+/?){3}(?=\?|$)").Value;
                    //VIP_XX/report/aaa.aspx
      

  7.   

      http://XXX.XXXX.XXX/XXX/VIP_XX/report/XXX/aaa.aspx 这个就不行了.
    不用正则的方式我试过好几个的.没辙才上来问正则的.
      

  8.   

     我重新说一下返回值. 
    string[] strResult = Regex.XXXXX;
    strResult[0] 值为 "VIP_XX"
    strResult[1] 值为"report/aaa.aspx"
      

  9.   

    try...Regex reg = new Regex(@"(?i)(?<=/)VIP_[^?\s]+");
      

  10.   


    try...            Regex reg = new Regex(@"(?i)(?<=/)(VIP_[^/]+)/([^?\s]+)");
                MatchCollection mc = reg.Matches(yourStr);
                foreach (Match m in mc)
                {
                    richTextBox2.Text += m.Groups[1].Value + "\n";
                    richTextBox2.Text += m.Groups[2].Value + "\n";
                }
      

  11.   

    string path = "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
    Match match = Regex.Match(path, @"/(?i)([^/]+)/(report(/[^/?]*)*)");
    Response.Write(match.Groups[1].Value + "<br/>");
    Response.Write(match.Groups[2].Value);
      

  12.   

    结贴.@无机之剑 . 你没认真理解,除了VIP_XX,其他全是可变的.不过谢谢你的回复.
      

  13.   

    呵呵,不是我没认真理解,其实是你没说清楚。你在主楼说xxxxx是可变的,很明显只有VIP_XX前面部分有xxxxx。你后面在9楼又贴了http://XXX.XXXX.XXX/XXX/VIP_XX/report/XXX/aaa.aspx这个示例,其中的report也没有变化,这很容易让人误解为固定值。