画像ソース ファイルから名前を抽出しようとしています。文字列の形式は次のとおりです。
source ='<img src="/ratefinder/images/providers/NAME-1307548896.gif">'
そこで、slice(39..-1) を使用してから、split('-') を使用して名前を取得しようとしましたが、nil クラス エラーが発生します。これを抽出するにはどうするのが最善の方法でしょうか?
編集:スライス
次の正規表現を使用します。
/.*\/(.*?)-.*$/
あれは:
name = /.*\/(.*?)-.*$/.match(source)[1]
HTML とファイル パスを解析しているように見えるので、正規表現の代わりに実際のパーサー ライブラリを使用することをお勧めします。
require 'nokogiri'
require 'pathname'
source = '<img src="/ratefinder/images/providers/NAME-1307548896.gif">'
src = Pathname.new Nokogiri::HTML(source).css('img').first.attributes['src'].value
filename = src.base_name.to_s # => "NAME-1307548896.gif"