如何在字符串中的两个术语之间提取数据?

时间:2017-04-29 22:15:39

标签: c#

<a href="https://genius.com/Run-the-jewels-lie-cheat-steal-lyrics" class=" song_link" title="Lie, Cheat, Steal by&nbsp;Run&nbsp;the Jewels">

我正在尝试提取href =“”之间的链接,并将其设置为字符串。有没有办法做到这一点? 其中的数据会一直变化,并不总是相同的域。提前谢谢。

2 个答案:

答案 0 :(得分:0)

快速简便:找到href="与下一个"之间的文字(由于"永远不会出现在值中):

Int32 startIdx = input.IndexOf( "href=\"" );
if( startIdx < 0 ) return null;
Int32 endIdx = input.IndexOf( "\"", startIdx );
if( endIdx < 0 ) return null;
return input.Substring( startIdx, endIdx - startIdx );

答案 1 :(得分:0)

我相信你可以在Stack上的其他地方找到它,但我会使用string.split()。你可以设置类似的东西......

public static void Main(){

     char[] delimiterChars = { '"', ' ' };

     string text = "<a href=\"https://genius.com/Run-the-jewels-lie-cheat-steal-lyrics\" class=\" song_link\" title=\"Lie, Cheat, Steal by&nbsp;Run&nbsp;the Jewels\">";

      string[] words = text.Split(delimiterChars);
}

假设您的标记的结构始终相同,您只需要获取数组中的第三个字符串即可获取您要查找的值。你也可以搜索href的索引,然后根据它分割字符串,但这就是我要去做的。