如何在C#中获取URL的子字符串?

时间:2013-07-10 06:55:50

标签: c# string

这是我的字符串:

<a href=\"https://vine.co/v/h7pUFJirEBX\" target=\"_blank\">https://t.co/LFIwdhvjB6</a>

我要检索的部分是“/ v /”之后的部分,即“h7pUFJirEBX”。

你知道在C#中做任何事吗?

更新:这是我的代码。

        var findIndex = url.IndexOf("/v/");
        var stringTweet = url.Substring(findIndex + 3);
        var removeafter = stringTweet.IndexOf("\"");
        var finalString = stringTweet.Remove(removeafter);
        return finalString;

finalString现在是“h7pUFJirEBX”。然而,这似乎是解决问题的一种可怕方法。

3 个答案:

答案 0 :(得分:1)

String.Substring是问题的确切答案。甚至可能适合你:

 var result = "<a href=\"https://vine.co/v/h7pUFJirEBX\" target=\"_".Substring(24, 14);

注意:

  • 使用字符串操作解析HTML(或者使用正则表达式解析更糟糕)很难。请考虑使用HtmlAgilityPack
  • 手动拆分网址很危险 - 请考虑使用Uri类,它可以让您正确获取类似路径的网址组件。

答案 1 :(得分:1)

您需要先从中提取 href 属性。您可以使用RegEx或使用 agilitypack 为您解析它:Easily extracting links from a snippet of html with HtmlAgilityPack

从那里你可以:

var uri = new Uri(@"https://vine.co/v/h7pUFJirEBX\");

var yourValue = uri.AbsolutePath.Substring(3);

答案 2 :(得分:0)

使用IndexOf()在字符串中查找“/ v /”序列的索引。然后将Substring()起始找到的索引转换为“\”的索引。不确定它是否是解析网址的好方法。