在我的应用程序中,我有文章模型,我有内容字段,其中存储了我所有的新闻文章html数据,如图像视频等。。。
但是现在我需要格式化rss feed,我必须获取所有这些img标记,并将它们放置到其他xml分支。
例如内容:
<h1>asdasd</h1>
content...
<img ... />
现在我的rss Builder视图是这样的:
xml.instruct! :xml, :version => "1.0"#, :encoding => "windows-1251"
xml.rss :version => "2.0" do
xml.channel do
for article in @posts
xml.item do
xml.title article.title
xml.description article.intro_text
end
end
end
也许用一些像gsub,regex?或者怎样做更好?请给我一个建议。非常感谢。
您可以使用String#scan方法,该方法返回与提供的正则表达式模式匹配的字符串数组。你只需要拿出一个模式来匹配你想要拉出的图像标签。
a = "cruel world"
a.scan(/\w+/) #=> ["cruel", "world"]
a.scan(/.../) #=> ["cru", "el ", "wor"]
a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]]
a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]
为了匹配img
标记,您可以尝试我从另一个SO答案复制的模式。
<img\s[^>]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>
这种模式似乎是根据红细胞测试来工作的。