Ruby on Rails字符串扫描和正则表达式

时间:2011-09-04 17:37:26

标签: ruby-on-rails ruby

我想从字符串中获取图片网址“http://www.test.com/image.jpg”:

"<img align="right" alt="Title " src="http://www.test.com/image.jpg" width="120" /><"

这是我的代码:

module MyHelper

    def getMymage(allDesc)
        allDesc = "<img align="right" alt="Title " src="http://www.test.com/image.jpg" width="120" /><"
        allDesc = allDesc.scan(src="(\S+)")
    end
end

我收到以下错误: 语法错误,意外的tAMPER         allDesc = allDesc.scan(src =“(\ S +)”)

语法错误,意外$ undefined         allDesc = allDesc.scan(src =“(\ S +)”)

如何解决?

先谢谢。

2 个答案:

答案 0 :(得分:3)

不能评论sunkencity的答案,但解决破折号问题的正则表达式是:

/src=\"([a-z0-9_.\-:\/]+)"/i

答案 1 :(得分:2)

正则表达式缺少一个开头“/”和一些额外的东西

allDesc.scan(/src=\"([a-z0-9_.\-:\/]+)"/i)

但你得到一个数组作为回应:

=> [["http://www.test.com/image.jpg"]] 

我建议使用匹配运算符,然后使用第一个匹配变量:

allDesc =~ /(http:\/\/[a-z0-9_.-i\/]+)/ && $1