我正在尝试编写一个正则表达式来匹配 html 文件中除第一个图像标签之外的所有图像标签。例如:
<html><body><img src="foo"><span><img src="bar></span><img src="foobar"></body></html>
到目前为止,我只设法创建了一个匹配所有图像标签的表达式:
<img[^>]*>
最佳答案
只需使用真正的 html 解析器,如 HtmlAgilityPack解析 html
var html = @"html><body><img src=""foo""><span><img src=""bar""></span><img src=""foobar""></body></html>";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var imgLinks = doc.DocumentNode
.Descendants("img")
.Skip(1)
.Select(x => x.Attributes["src"])
.ToList();
不要这样做
var pattern = @"<img[^>]*>"; //your pattern in question
var imgs = Regex.Matches(html, pattern)
.Cast<Match>()
.Skip(1)
.Select(m => m.Value)
.ToList();
关于c# - 您如何编写匹配除第一次出现以外的所有内容的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568001/