Luc*_*oli 6 ruby regex ruby-on-rails
嗨,我有一个像这样的字符串:
"<p class='video'>http://vimeo/2342343</p><p class='image'>http://nerto.it/logo.png</p><p class='text'>try to write</p><p class='video'>http://vimeo/2234923</p>"
Run Code Online (Sandbox Code Playgroud)
我必须在这样的字符串中转换它:
"<p class='video'><a href='http://vimeo/2342343'>http://vimeo/2342343</a></p><p class='image'><img src='http://nerto.it/logo.png' /></p><p class='text'>try to write</p><p class='video'><a href='http://vimeo/2234923'>http://vimeo/2234923</a></p>"
Run Code Online (Sandbox Code Playgroud)
那我怎么能得到每一个元素并改变它?
谢谢
html = "<p class='video'>http://vimeo/2342343</p>
<p class='image'>http://nerto.it/logo.png</p>
<p class='text'>try to write</p>
<p class='video'>http://vimeo/2234923</p>"
linked = html.gsub( %r{http://[^\s<]+} ) do |url|
if url[/(?:png|jpe?g|gif|svg)$/]
"<img src='#{url}' />"
else
"<a href='#{url}'>#{url}</a>"
end
end
puts linked
#=> <p class='video'><a href='http://vimeo/2342343'>http://vimeo/2342343</a></p>
#=> <p class='image'><img src='http://nerto.it/logo.png' /></p>
#=> <p class='text'>try to write</p>
#=> <p class='video'><a href='http://vimeo/2234923'>http://vimeo/2234923</a></p>
Run Code Online (Sandbox Code Playgroud)