如果你的URL看起来像一个实际的URL(使用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);
}
哦,说我已经遇到对谷歌的一些东西,但没有就如何实现它们是一个很懒惰的回答十分肯定。如果你是谷歌,你可以找到无数的例子来说明如何做这些事情,即使在这个网站上。请从下次开始先做你的研究,先自己试试。
我认为这是Asp.Net? MVC? Web API?请适当地标记您的问题。 – Amy
你尝试过什么吗?关于从更大的字符串中获取数字有很多问题 –
_I需要获得“21911”_是什么意思?换句话说,无论你想要提取什么标准?它是否是来自URL最后部分的任何数字,还是最后五个字符,还是最后五个数字值?你得到了漂移。 – Sach