2010-09-10 3 views
27

У меня есть простой вопрос о рубине. У меня есть массив строк. Я хотел бы определить, содержит ли этот массив подстроку любой из строк. В качестве примераОпределение, если массив строк содержит определенную подстроку в ruby ​​

a = ['cat','dog','elephant'] 
a.to_s.include?('ele') 

Это лучший способ сделать это?

Спасибо.

+1

Вы хотите получить 'true' или' false' для '['cat', 'dog', 'elephant']' и ''gel''? – sepp2k

ответ

50

a.any? должен выполнить эту работу.

> a = ['cat','dog','elephant'] 
=> ["cat", "dog", "elephant"] 
> a.any? { |s| s.include?('ele') } 
=> true 
> a.any? { |s| s.include?('nope') } 
=> false 
+0

Есть ли способ проверить несколько значений? – Shiko

+0

Вам нужно будет сделать вложенную «любую» проверку и, возможно, другой вопрос, хотя короткий ответ может быть следующим: 'a.any? {| s | ['aba', 'ele']. {| t | s.include? (t)}} ' – Shadwell

+1

Я закончил с этим' haystack.select {| str | str.include? ('wat') || str.include? ('pre')} ' – Shiko

Смежные вопросы