2015-12-21 67 views
0

得到具体的部分,我有一个丑陋的字符串:解析和刺痛

a1a5021a96188bbfa7d\" alt=\"\" \/>\u003C\/a>\u003Cdiv class=\"_8u _42ef\">\u003Cdiv class=\"_6a _5u5j\">\u003Cdiv class=\"_6a _6b\" style=\"height:100px\">\u003C\/div>\u003Cdiv class=\"_6a _5u5j _6b\">\u003Cdiv class=\"fsl fwb fcb\">\u003Ca href=\"https:\/\/www.facebook.com\/username.ivn?fref=grp_mmbr_list\" data-hovercard=\"\/ajax\/hovercard\/user.php?id=100002759468783&extragetparams=\u00257B\u002522fref\u002522\u00253A\u002522grp_mmbr_list\u002522\u00257D\">Mamu Ivaniadze\u003C\/a>\u003C\/div> 

如何获得的user.php?id=100002759468783从它的组成部分。事实上,这是一个很大的字符串,我需要获得所有ID user.php?id=someId

回答

6

您可以使用正则表达式:

(user\.php\?id=[0-9]+) 

它总是会得到你的用户URL部分和id列。使用Regex.MatchRegex.Matches(如果有多个可能的结果)匹配输入字符串并使用捕获获取URL。

+1

请参见['Regex.Matches'](https://msdn.microsoft.com/en-us/library/b49yw9s8(v = vs.110).aspx)上的代码示例。 –

2

您不使用正则表达式解析HTML。

  1. 使用HtmlAgilityPack解析HTML。
  2. 获取全部a具有data-hovercard属性的标签,然后选择该属性值。
  3. 现在你有一个表示相对URI的字符串列表。
  4. 解析URI并获取查询字符串。
  5. 解析查询字符串并获取id键的值。
+0

我使用HtmlAgilityPack,但在这种情况下不起作用 –