Как проверить, содержит ли строка какое-либо значение массива? - PullRequest
0 голосов
/ 02 мая 2018

Моя строка

str = "my string is this one"

и мой массив

arr = ["no", "nothing", "only", "is"]

Итак, моя строка включает is в значение моего массива, я хочу получить результат true

Как я могу это сделать?

Я хочу использовать include? met

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Чтобы проверить, когда все слово включено с учетом регистра:

(str.split & arr).any?
#⇒ true

без учета регистра:

[str.split, arr].map { |a| a.map(&:downcase) }.reduce(&:&).any?
#⇒ true

Чтобы проверить, включает ли он какой-либо из arr:

arr.any?(&str.method(:include?))
#⇒ true
0 голосов
/ 02 мая 2018

Используется регулярное выражение. Хорошей новостью является то, что он создан для вас - нет синтаксиса для изучения. Другие хорошие новости: он пересекает строку только один раз.

re = Regexp.union(arr)  #your own regular expression without screws or bolts
p re.match?(str)  # => true
0 голосов
/ 02 мая 2018
(str.downcase.split & arr.map(&:downcase)).any?
   #=> false

Если известно, что все буквы имеют одинаковый регистр.

(str.split & arr).any?
   #=> false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...