2012-03-30 217 views
1

一個字符串,我想這樣做如下:紅寶石:搜索多個搜索詞

if params[:entry].include? ("http" || "www" || "com" || "abc" || "def") 
    ... 
end 

我嘗試使用正則表達式,但它不工作(不能轉換正則表達式來串)和我如果我們正在搜索的字符串在params [:entry]中出現,則需要該語句返回true。

使用Ruby/Rails做到這一點的最佳方式是什麼?

回答

-1

嘗試把它變成一個數組如下:

["http","www","com","abc","def"].include?(params[:entry]) 
+1

這不起作用,因爲它只找到完美匹配。澄清一下,如果'params [:entry]'是'www.hello.com',那麼你會在我們真正想要的地方返回false。 – sscirrus 2012-03-30 11:04:15

2

除了Wukerplank的答案很可能要在任何情況下(低/上)匹配這些字符串,你可以做這改變了一下正則表達式是這樣的:

params[:entry].match(/(http|www|com|abc|def)/i) 

當然,你可以使用=~運營商,而不是通話比賽上,如果你的字符串寧願:

params[:entry] =~ /(http|www|com|abc|def)/i 
+0

這很有幫助 - 謝謝Aldo。 +1 – sscirrus 2012-04-02 17:37:01

+0

不客氣;) – 2012-04-02 18:23:23