2011-09-04 37 views
0

我想獲得的圖像URL「http://www.test.com/image.jpg」出從字符串:Ruby on Rails的串掃描和正則表達式

"<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 

我得到了以下錯誤: 語法錯誤,意想不到的篡改 allDesc = allDesc.scan(SRC = "(\ S +)")

語法錯誤,意想不到的$未定義 allDesc = allDesc.scan(SRC = "(\ S +)")

如何解決呢?

謝謝先進。

+0

請更正粘貼文本的編碼,這會更容易幫助你! – fuzzyalej

回答

2

的正則表達式缺少開始「/」和一些額外的東西

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

但你得到一個數組作爲迴應:

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

我建議使用匹配運算符,然後使用第一個匹配變量:

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

謝謝。差不多了。只是一個小錯誤。對於圖像URL像:http://www.test.com/images/1-2-3.jpg,它返回的網址:http://www.test.com/images/1 –

+0

我修改了一下: allDesc =〜/(http:\/\/\ S +)/ && $ 1,但最後有報價。 –

+0

只需在您的匹配組中放置一個像這樣allDesc =〜/(http:\/\/\ S +)&&&& 1 =>「http://www.test.com/image.jpg」 – sunkencity

3

無法評論sunkencity的答案,但解決das的正則表達式h的問題是:

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

我試過allDesc =〜/ src = \ "([a-z0-9 _。\ - :\ /] +)" /我但它不會返回任何東西? –

+0

即使是這樣:allDesc =〜/ src = \ "([a-z0-9 _。\ - :\ /] +)"/i && $ 1 –

相關問題