1
4

2 回答 2

2

Regex是解析 HTML 的糟糕选择,尤其是不一致的 HTML。

我建议使用HTML Agility Pack来解析和更改 HTML。

什么是 Html Agility Pack (HAP)?

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

源代码下载附带了一些示例项目,展示了如何使用该库。

于 2012-11-30T11:47:19.037 回答
1

正则表达式不是解析 HTML 文件的好选择。

HTML 并不严格,其格式也不规则。

使用htmlagilitypack

Regex 用于则表达式

您可以使用此代码来检索它HtmlAgilityPack

HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);

foreach(var item in doc.DocumentNode.SelectNodes("//li[a]"))// select li only if it has anchor tag
{
    item.ParentNode.RemoveChild(item);//removed anchor tag
}
//dont forget to save

我想仅使用正则表达式删除标签文本..

Regex.Replace(input,@"(?<=<li[^>]*>)\s*<a.*?(?=</li>)","",RegexOptions.Singleline);
于 2012-11-30T11:47:59.003 回答