-1

我有一个html代码。我用这样的正则表达式解析它

MatchCollection matches = Regex.Matches(go, @"photoWrapper""><div><a href=""(?<id>[^""]+?)\?");

我收到:

matches[0].Groups["id"].Value = "/group/47502002094086";
matches[1].Groups["id"].Value = "/dk";
matches[2].Groups["id"].Value = "/prostooglavnom";

如何编辑我的正则表达式或添加 smth,仅接收匹配项

matches[0].Groups["id"].Value = "47502002094086";
matches[1].Groups["id"].Value = "prostooglavnom";

任何帮助?=\ 完整的 html 代码: http: //pastebin.com/xEJNiD4G

4

1 回答 1

7

您刚刚发现了为什么Regex 是解析 HTML 的糟糕选择

我建议您使用HTML Agility Pack 来解析和查询您的 HTML。

源代码下载带有许多示例项目。

什么是 Html Agility Pack (HAP)?

这是一个敏捷的 HTML 解析器,它构建了一个读/写 DOM 并支持普通的 XPATH 或 XSLT(你实际上不必了解 XPATH 或 XSLT 就可以使用它,不用担心......)。它是一个 .NET 代码库,允许您解析“网络之外”的 HTML 文件。解析器对“真实世界”格式错误的 HTML 非常宽容。对象模型与 System.Xml 的提议非常相似,但用于 HTML 文档(或流)。

于 2012-12-14T14:13:51.827 回答