我需要一个正则表达式模式来查找HTML中的网页链接。我首先使用@"(<a.*?>.*?</a>)"提取链接(<a>),但无法从中获取链接href。我的字符串是:<a href="www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="http://www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="https://www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="www.example.com/page.php/404" ....></a>1,2和3是有效的,我需要他们,但4号是无效的,我(?和=是必不可少的)谢谢大家,但是我不需要解析<a>。我有href="abcdef"格式的链接列表 。我需要获取href链接并对其进行过滤,我最喜欢的网址必须包含?和=喜欢page.php?id=5谢谢!
3 回答
LEATH
TA贡献1936条经验 获得超6个赞
regex不建议使用解析html
regex用于定期发生的模式。html是不是经常与它的格式(除xhtml)。例如html文件,即使你有效不有closing tag!这可能会破坏你的代码。
使用像htmlagilitypack这样的html解析器
您可以使用以下代码使用以下代码来检索href's锚定标记中的所有内容:HtmlAgilityPack
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
var hrefList = doc.DocumentNode.SelectNodes("//a")
.Select(p => p.GetAttributeValue("href", "not found"))
.ToList();
hrefList 包含所有href
- 3 回答
- 0 关注
- 1507 浏览
添加回答
举报
0/150
提交
取消