1

画像ソース ファイルから名前を抽出しようとしています。文字列の形式は次のとおりです。

source ='<img src="/ratefinder/images/providers/NAME-1307548896.gif">'

そこで、slice(39..-1) を使用してから、split('-') を使用して名前を取得しようとしましたが、nil クラス エラーが発生します。これを抽出するにはどうするのが最善の方法でしょうか?

編集:スライス

4

3 に答える 3

1

次の正規表現を使用します。

/.*\/(.*?)-.*$/

あれは:

name = /.*\/(.*?)-.*$/.match(source)[1]
于 2013-04-21T21:43:11.843 に答える
0

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"
于 2013-04-21T22:07:15.927 に答える