gpt4 book ai didi

c# - 正则表达式有问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:06 25 4
gpt4 key购买 nike

我对正则表达式一窍不通,需要解析一些 html。我正在寻找个别类别。以下是 html 的样子:

<p>Categories: 
<a href="/some/URL/That/I/dont/need">Category1</a> |
<a href="/could/be/another/URL/That/I/dont/need">Category2</a>
</p>

可能有 1-5 个类别。我需要的是“Category1 或 Category2 等”

这个项目是在 c# 中使用 Visual Studio 2010。目前我拥有的是:

private static readonly Regex _categoriesRegex = new Regex("(<p>Categories:)((/w/.?<Categories>.*?).*?)(</p>)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);

我知道我可能离题太远了,但想知道是否有人至少可以引导我朝着正确的方向前进。

最佳答案

不要将正则表达式用于此类任务,而应使用专用工具。您最好的选择可能是使用 HTML Agility Pack .


编辑:这是一个使用 HTML Agility Pack 的示例(用 LINQPad 编写):

void Main()
{
var doc = new HtmlDocument();
doc.Load(@"D:\tmp\foobar.html");
var query =
from p in doc.DocumentNode.Descendants("p")
where p.InnerText.StartsWith("Categories:")
from a in p.Elements("a")
select a.InnerText;

query.Dump();
}

它返回:

Category1
Category2

我应该指出,这是我第一次真正尝试使用 HAP,我对它的简单性感到惊喜(编写上面的代码大约需要 3 分钟)。该 API 与 Linq to XML 非常相似,如果您熟悉 Linq,它会非常直观。

关于c# - 正则表达式有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com