Skip to main content
 首页 » 编程设计

c#之匹配 href 的正则表达式,但没有媒体文件

2024年01月24日26zengkefu

我正在使用这个正则表达式来计算页面上 href's 的所有内容:

(?:href)=[\"|']?(.*?)[\"|'|>]+

它工作正常。但我只想匹配不是媒体的链接,如 (png|jpg|avi|wav|gif) 等。

我试过添加

((?!png).)

到我的正则表达式,但这没有用。我读了this question 但无法获得任何可行的解决方案。

请您参考如下方法:

我知道这个问题已经有人回答了。

我想提供一种使用 CsQuery 的不同方法而不是 HtmlAgilityPack

我认为语法更紧凑并且与其他结构非常相似,因为它基于 LINQ

//input is your input HTML string 
var links = CQ.Create(input).Find("a").Select(x=>x.Cq().Attr("href")); 

例如

var links = CQ.Create("<div><a href='blah'></a><a href='blah2'></a></div>").Find("a").Select(x=>x.Cq().Attr("href")); 
Console.Write(string.Join(",",dom)); //prints blah,blah2 

希望这对任何人都有帮助:)