只有当字符串包含整个单词时,Ruby中才会返回true,在本例中为“hello”。 我不想要那个包括?如果只有一些部分存在,则返回true:
'hello whats up'.include? 'll'
=> true
答案 0 :(得分:7)
> 'hownowbrowncow'['now'] => "now" # will be nil if not found
如果你想要它需要字边界......
'hownowbrowncow'[/\bnow\b/] => nil
如果返回true或false,则无关紧要,因为nil
或false
以外的任何内容都将满足条件测试。如果你真的喜欢真假,那么你可以通过多种方式将任意表达式变为真或假,一种方法是:
'now'.nil? => false
!'now'.nil? => true
答案 1 :(得分:3)
有很多好方法可以像其他人一样做到这一点。这是另一种方式:
my_string.scan(/\w+/).include? "hello"
这将是一个区分大小写的检查。对于不区分大小写的情况:
my_string.scan(/\w+/).map(&:downcase).include? "hello"
这也适用于“hello”的变量:
m_string.scan(/\w+/).map(&:downcase).include? my_word
答案 2 :(得分:2)
str = "Hello guys, how are you?'"
keyword = "hello"
print str.split.map { |word| word.downcase }.include? keyword.downcase
答案 3 :(得分:1)
如果你的意思是只有字母表,那么你可以
(! 'Wr4ngle'.gsub(/[A-Za-z]/, '').blank?)
grep应该足够多才能满足您的需求
答案 4 :(得分:1)
听起来你只想做:
"hello" == "hello"
如果您不希望匹配区分大小写,可以使用:
"HeLlO".downcase == "hElLo".downcase
如果您想查看一串字符是否包含另一个字符串,您可以执行以下操作:
s1 = "hello"
s2 = "oelhl"
s1.split("").sort == s2.split("").sort #=> case sensitive
s1.downcase.split("").sort == s2.downcase.split("").sort #=> not case sensitive