2015-04-22 49 views

回答

2

如果這是您的意圖,那麼在這裏使用正則表達式確實沒有任何問題。使用其中一種比通過比較數組的麻煩通常更高效。

值得注意的你不必做那麼多工作,得到這樣的:

re = Regexp.union(array) 

應該處理自動轉義這些字符串,並將其編譯成一個單一的正則表達式。請確保使用包含*?的字符串進行測試。

需要注意的一點是,=~運算符是Perl的一個保留。最好使用string.match(re)來清楚說明發生了什麼。

1

陣列有多大?使用正則表達式與檢查每個元素比較速度可能是值得的。如果數組排序時間最短到最長,這將有助於逐一檢查,因爲您更可能首先找到匹配項。

在任何情況下,這也是一個辦法:

array_o_strings.any?{|e| string.index(e) } 
相關問題