2011-11-23 178 views
3

提取IMG源我有一个字符串是这样的:正则表达式从字符串

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

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

+0

你到现在为止有什么想法? –

回答

4

如果你正在处理HTML,你最好使用HTML分析器,如HTML Agility Pack

样品:

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); 
} 
+0

我使用Agillity Pack并使用XPath选择匹配// img/@ src的节点。但一旦我有,我想从该节点提取src。我不能这样做,但正则表达式。 – Ghita

+0

你说得对,没有必要使用正则表达式,因为我已经有了使用Agillity Pack获得的节点。 – Ghita

3

此模式应该工作:src="([^"]*)"

+0

它的工作原理,但使用HTML敏捷包时提供的解决方案是最好的。 Tnx – Ghita