【问题标题】:Regex to extract img source from a string正则表达式从字符串中提取 img 源
【发布时间】:2012-01-04 16:50:08
【问题描述】:

我有这样的字符串:

<img width="1" height="1" alt="" src="http://row.bc.yahoo.com.link">

我应该用 C# 编写什么正则表达式来提取它的 src 部分? (最终结果应该是“http://row.bc.yahoo.com.link”)

【问题讨论】:

  • 到目前为止你有什么想法?

标签: c# regex html-parsing


【解决方案1】:

如果您正在处理 HTML,最好使用像 HTML Agility Pack 这样的 HTML 解析器。

示例:

var doc = new HtmlDocument();

doc.LoadHtml(
    "<img width=\"1\" height=\"1\" alt=\"\" src=\"http://row.bc.yahoo.com.link\">");

var anchor = doc.DocumentNode.Element("img");

Console.WriteLine(anchor.Attributes["src"].Value);

更新: 如果您已经在使用 HTML 敏捷包并已使用 XPath 从文档中选择了所有 img 标记,则需要迭代它们并访问 src 属性:

var imgs = doc.DocumentNode.SelectNodes("//img/@src");

foreach (var node in imgs)
{
    Console.WriteLine(node.Attributes["src"].Value);
}

【讨论】:

  • 我使用 Agillity Pack 并使用 XPath 来选择匹配 //img/@src 的节点。但是一旦我有了,我想从那个节点中提取 src。我不能使用但正则表达式来做到这一点。
  • 你说得对,不需要使用正则表达式,因为我已经有了通过 Agillity Pack 获得的节点。
【解决方案2】:

这种模式应该可以工作:src="([^"]*)"

【讨论】:

  • 它可以工作,但使用 HTML Agility Pack 时提供的解决方案是最好的。 Tnx
猜你喜欢
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2018-02-23
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多