string path= "http://XXX.XXXX.XXX/XXX/VIP_XX/report/aaa.aspx?id=1";
xxxx 是不可以预定的 , 红色字体内的. 固定5个字符.
result
string url="report/aaa.aspx"; 很简单.就是去掉vip_XX前面的字符,跟?号后面的字符.
xxxx 是不可以预定的 , 红色字体内的. 固定5个字符.
result
string url="report/aaa.aspx"; 很简单.就是去掉vip_XX前面的字符,跟?号后面的字符.
path = Regex.Match(path, @"[\w_]+/[\w_]+\.\w+").Value;
path = Regex.Match(path,@"(?i)(?<=/\w{3}_\w{2}/)[^\?]+").Value;
//report/aaa.aspx
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);
path = Regex.Match(path,@"(?i)(?<=/)([^\?/]+/?){3}(?=\?|$)").Value;
//VIP_XX/report/aaa.aspx
不用正则的方式我试过好几个的.没辙才上来问正则的.
string[] strResult = Regex.XXXXX;
strResult[0] 值为 "VIP_XX"
strResult[1] 值为"report/aaa.aspx"
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";
}
Match match = Regex.Match(path, @"/(?i)([^/]+)/(report(/[^/?]*)*)");
Response.Write(match.Groups[1].Value + "<br/>");
Response.Write(match.Groups[2].Value);