我正在尝试从图像源文件中提取名称,这是字符串的格式
source ='<img src="/ratefinder/images/providers/NAME-1307548896.gif">'
所以我尝试使用切片(39 ..- 1)然后拆分(' - ')来获取名称,但我得到一个零类错误。什么是提取这个的最好方法?
编辑:切片
答案 0 :(得分:1)
使用以下正则表达式:
/.*\/(.*?)-.*$/
那是:
name = /.*\/(.*?)-.*$/.match(source)[1]
答案 1 :(得分:0)
source.slice(0..39)
将为您提供这一部分:
<img src="/ratefinder/images/providers/N
我认为您的意思是source.slice(39..-1)
或source[39..-1]
:
"NAME-1307548896.gif">
然后split
将正常运作。
答案 2 :(得分:0)
由于您似乎正在解析html和文件路径,因此您可能希望使用实际的解析器库而不是regexp。
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"