我需要你的集体智慧。我需要获取一部分网址,以便我可以将其作为参数传递以使某些事情发生。这就是我所拥有的:
这里是url“somesite / somepage / johndoe21911”的一个示例,我需要获取“21911”以便我可以将其传递给此:
var url = Request.ApplicationPath.Replace("/", "");
Session["agencyId"] = _Apps.GetGehaAgencyData(portion needed goes here);
非常感谢任何方向
答案 0 :(得分:1)
如果您的网址看起来像一个实际网址(使用http://部分),那么您可以使用Uri
类:
private static void Extract()
{
Uri uri = new Uri("http://somesite/somepage/johndoe21911");
string last = uri.Segments.LastOrDefault();
string numOnly = Regex.Replace(last, "[^0-9 _]", string.Empty);
Console.WriteLine(last);
Console.WriteLine(numOnly);
}
如果它与您的示例完全相同(没有http://部分),那么您可以执行以下操作:
private static void Extract()
{
string uri = "http://somesite/somepage/johndoe21911";
string last = uri.Substring(uri.LastIndexOf('/') + 1);
string numOnly = Regex.Replace(last, "[^0-9 _]", string.Empty);
Console.WriteLine(last);
Console.WriteLine(numOnly);
}
上面假设你想要URL中最后一段的所有数字,这就是你所说的你的要求。也就是说,如果您的网址如下所示:
somesite/somepage/john123doe456"
这将提取123456
。
如果您只想要最后5个字符,则可以使用string.Substring()
提取最后5个字符。
如果您想要数字位于字符串末尾的,那么这将有效。
private static void Extract()
{
string uri = "somesite/somepage/john123doe21911";
string last = uri.Substring(uri.LastIndexOf('/') + 1);
string numOnly = Regex.Match(last, @"\d+$").Value;
Console.WriteLine(last);
Console.WriteLine(numOnly);
}
哦,并且说 我在谷歌上遇到过一些东西,但对于如何实施它们并不是很确定 是一个非常懒惰的答案。如果你是谷歌,你可以找到无数的如何做所有这些事情的例子,即使在这个网站本身。请从下次开始,先进行研究,然后先尝试。