在Ruby中提取IMG标记

时间:2011-04-28 03:57:26

标签: ruby-on-rails ruby ruby-on-rails-3

是否可以从Ruby中的HTML块中提取IMG标记(或只是IMG标记的src属性)?

例如,如果我有一个HTML块,例如:

<p>Lorem ipsum dolor sit amet, labore et dolore magna aliqua.<img src="example.jpg" alt="" /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>

我可以通过Regex或其他方法提取IMG标签的IMG标签或src吗?

提前感谢任何建议!

4 个答案:

答案 0 :(得分:31)

使用Nokogiri

require 'nokogiri' # gem install nokogiri
doc = Nokogiri::HTML( my_html_string )
img_srcs = doc.css('img').map{ |i| i['src'] } # Array of strings

答案 1 :(得分:7)

您可以使用此正则表达式

html_str[/img.*?src="(.*?)"/i,1]

如果您想要更高级的HTML解析器,我建议nokogiri

答案 2 :(得分:2)

使用Nokogiri解析HTML并搜索img标记以从中提取src属性。

答案 3 :(得分:2)

有很多方法可以做到这一点。我更喜欢使用Nokogiri gem

在你深入研究之前,我建议阅读Jeff Atwood撰写的关于使用Regex解析的以下内容:Parsing Html The Cthulhu Way