Ruby字符串包括?所有人物

时间:2013-08-10 16:13:42

标签: ruby

只有当字符串包含整个单词时,Ruby中才会返回true,在本例中为“hello”。 我不想要那个包括?如果只有一些部分存在,则返回true:

   'hello whats up'.include? 'll'
   => true

5 个答案:

答案 0 :(得分:7)

> 'hownowbrowncow'['now']    => "now" # will be nil if not found

如果你想要它需要字边界......

'hownowbrowncow'[/\bnow\b/]  => nil 

如果返回true或false,则无关紧要,因为nilfalse以外的任何内容都将满足条件测试。如果你真的喜欢真假,那么你可以通过多种方式将任意表达式变为真或假,一种方法是:

'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