I\'ve got a long string-variable and want to find out whether it contains one of two substrings.
e.g.
haystack = \'this one is pretty long\'
needle1
For an array of substrings to search for I'd recommend
needles = ["whatever", "pretty"]
if haystack.match(Regexp.union(needles))
...
end
To check if contains at least one of two substrings:
haystack[/whatever|pretty/]
Returns first result found
(haystack.split & [needle1, needle2]).any?
To use comma as separator: split(',')
[needle1, needle2].any? { |needle| haystack.include? needle }
In Ruby >= 2.4 you can do a regex match using |
(or):
haystack.match? /whatever|pretty|something/
Or if your strings are in an array:
haystack.match? Regexp.union(strings)
(For Ruby < 2.4, use .match
without question mark.)
Try parens in the expression:
haystack.include?(needle1) || haystack.include?(needle2)